Navn på regneark kan ændres til næsten alt. Det er den * næsten * del, der er uklar for mig. Der er et par tegn, der ikke er tilladt i en regnearksfane. Men hvordan finder du ud af, hvilke tegn de er? I dag vil jeg vise dig hvordan.
En af mine mest populære videoer på YouTube er Podcast # 1505 - Næste fakturanummer. Jeg kan huske, at jeg downloadede en fakturaskabelon fra Microsoft for 20 år siden og var skuffet over, at der ikke var noget i skabelonen, der kunne øge fakturanummeret efter hver Gem. For seks år siden optog jeg en kort video med et par linjer VBA-kode for at opdatere fakturanummeret ved hver gemning. 222.000 visninger senere forbliver det min # 1 video.
Tre gange om ugen bliver jeg kontaktet af en person, der ønsker at ændre makroen for at gøre noget andet. I sidste uge fortæller nogen mig, at min kode giver dem en 1004-fejl. Det er altid svært at foretage fejlfinding uden at se projektmappen. Kodelinjen, der kastede fejlen, var en linje, der omdøbte regnearket til den værdi, der er gemt i celle E5.
Sådan minder jeg mig selv om, hvilke tegn der er ulovlige. Følg disse trin:
- Tryk på Ctrl + N for en ny Excel-projektmappe
- Formel i A1 er
=ROW()
. Kopier ned til A1: A255. Dette giver dig hurtigt tallene 1 til 255 - Formel i B1 er
=CHAR(A1)
. Kopier ned til B1: B255. Dette giver dig de 255 ASCII-tegn. Du vil bemærke en stor bogstav A i række 65. -
Tryk på alt = "" + F11 for at åbne VBA. Fra menuen VBA skal du vælge Indsæt modul. Kopier følgende kode til 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
- Klik et vilkårligt sted inde i makroen. Tryk på F5 for at køre. Det tager kun et par sekunder. Tryk på alt = "" + Q for at lukke og vende tilbage til Excel. Makroen har forsøgt at navngive regnearket med 255 forskellige navne. Kolonne C viser fejlkoden efter hvert forsøg. Nul er godt. 1004 er dårlig.
- Det ville være rart at tilføje nogle overskrifter, så du kan filtrere. Kopi A1: C255. Indsæt som værdier. Indsæt en ny række 1 med overskrifter på kode, tegn, navn
- Tænd for filteret. Åbn rullemenuen i C1. Fjern markeringen af noget med en fejl på 0. De resterende 9 rækker viser en fejl på 1004.
Som du kan se på billedet nedenfor, er de 9 tegn '* / :? () dem, der ikke kan bruges i et regnearksnavn. (Disse er Apostrophe, Asterisk, Slash, Colon, Spørgsmålstegn, Left Square Bracket, Backslash, Right Square Bracket.)

Jeg gik tilbage til personen på YouTube og spurgte, om celle E5 indeholdt en dato formateret som MM / DD / ÅÅÅÅ. Ved at skifte til WS.Name =Format(Range("E5").Value,"MM-DD-YYYY")
indeholder datoen bindestreger i stedet for skråstreg, og koden fungerede.
Her er en forklaring på de vigtige dele af koden:
- On Error Resume Next fortæller Excel, at den ikke skal stoppe makroen, når der opstår en fejl. Err.Number og Err.Beskrivelsen vil være tilgængelig, efter at fejlen er stødt på.
- Err.Clear rydder enhver tidligere fejl fra forrige gang gennem sløjfen.
Forresten fascinerer det mig altid, hvilke tegn * der er * lovlige i et regnearksnavn. Figuren nedenfor er=CHAR(3)&CHAR(6)&CHAR(7)&CHAR(6)&CHAR(4)

Hver fredag vil jeg skrive om debugging af fiskeagtig opførsel i Excel.
Excel-tanken om dagen
Jeg har bedt mine Excel Master-venner om deres råd om Excel. Dagens tanke at tænke over:
"Ikke alle farver i Excel er beregnet til faktisk brug."
Mike Alexander