Welke tekens legaal zijn in een werkbladnaam - Excel-tips

Inhoudsopgave

Werkbladnamen kunnen in bijna alles worden gewijzigd. Het is het * bijna * deel dat voor mij wazig is. Er zijn een paar tekens die niet zijn toegestaan ​​in een werkbladtabblad. Maar hoe kom je erachter welke karakters het zijn? Vandaag zal ik je laten zien hoe.

Een van mijn meest populaire video's op YouTube is Podcast # 1505 - Next Invoice Number. Ik kan me herinneren dat ik 20 jaar geleden een factuursjabloon van Microsoft downloadde en teleurgesteld was dat er niets in de sjabloon stond om het factuurnummer na elke opslag te verhogen. Zes jaar geleden nam ik een korte video op met een paar regels VBA-code om het factuurnummer bij elke opslag bij te werken. 222.000 keer bekeken later, blijft het mijn # 1 video.

Drie keer per week word ik benaderd door iemand die de macro wil veranderen om iets anders te doen. Vorige week vertelde iemand me dat mijn code hen een 1004-fout geeft. Het is altijd moeilijk om problemen op te lossen zonder de werkmap te zien. De regel code die de fout veroorzaakte, was een regel die het werkblad hernoemde naar de waarde die was opgeslagen in cel E5.

Hier is hoe ik mezelf eraan herinner welke karakters illegaal zijn. Volg deze stappen:

  1. Druk op Ctrl + N voor een nieuwe Excel-werkmap
  2. Formule in A1 is =ROW(). Kopieer naar A1: A255. Dit levert al snel de nummers 1 tot en met 255 op
  3. Formule in B1 is =CHAR(A1). Kopieer naar B1: B255. Dit geeft je de 255 ASCII-tekens. U ziet een hoofdletter A in rij 65.
  4. Druk op alt = "" + F11 om VBA te openen. Kies Module invoegen in het VBA-menu. Kopieer de volgende code naar VBA.

    Sub CheckAll() On Error Resume Next For i = 1 To 255 Err.Clear ActiveSheet.Name = "A" & Cells(i, 2).Value Cells(i, 3).Value = Err.Number Next i End Sub
  5. Klik ergens in de macro. Druk op F5 om uit te voeren. Het duurt maar een paar seconden. Druk op alt = "" + Q om te sluiten en terug te keren naar Excel. De macro heeft geprobeerd het werkblad 255 verschillende namen te geven. Kolom C toont de foutcode na elke poging. Nul is goed. 1004 is slecht.
  6. Het zou leuk zijn om wat koppen toe te voegen zodat je kunt filteren. Kopieer A1: C255. Plakken als waarden. Voeg een nieuwe rij 1 in met de koppen Code, Teken, Naam
  7. Schakel het filter in. Open de vervolgkeuzelijst in C1. Vink alles uit met een fout van 0. De resterende 9 rijen geven een fout van 1004 weer.

Zoals je in de onderstaande afbeelding kunt zien, zijn de 9 tekens '* / :? () degene die niet in een werkbladnaam kunnen worden gebruikt. (Dat zijn Apostrophe, Asterisk, Slash, Colon, Question Mark, Left Square Bracket, Backslash, Right Square Bracket.)

De 9 tekens die zichtbaar zijn in kolom B, genereren een 1004-fout als u ze in een werkbladnaam probeert te gebruiken.

Ik ging terug naar de persoon op YouTube en vroeg of cel E5 een datum bevatte die was opgemaakt als MM / DD / JJJJ. Door te veranderen in WS.Name =Format(Range("E5").Value,"MM-DD-YYYY")bevat de datum streepjes in plaats van schuine strepen en werkte de code.

Hier is een uitleg van de belangrijkste onderdelen van de code:

  • Bij fout hervatten Volgende vertelt Excel om de macro niet te stoppen wanneer er een fout optreedt. Het Err.Number en Err.Description zijn beschikbaar nadat de fout is opgetreden.
  • Err.Clear wist alle eerdere fouten van de vorige keer door de lus.

Het fascineert me trouwens altijd welke karakters * legaal zijn in een werkbladnaam. De onderstaande figuur is=CHAR(3)&CHAR(6)&CHAR(7)&CHAR(6)&CHAR(4)

Gebruik ActiveSheet.Name = ActiveCell.Value

Elke vrijdag zal ik schrijven over het debuggen van visgedrag in Excel.

Excel-gedachte van de dag

Ik heb mijn Excel Master-vrienden om advies over Excel gevraagd. De gedachte van vandaag om na te denken:

"Niet alle kleuren in Excel zijn bedoeld voor daadwerkelijk gebruik."

Mike Alexander

Interessante artikelen...