Navn på regneark kan endres til nesten hva som helst. Det er * nesten * delen som er uklar for meg. Det er noen få tegn som ikke er tillatt i en regnearkfane. Men hvordan finner du ut hvilke tegn de er? I dag skal jeg vise deg hvordan.
En av mine mest populære videoer på YouTube er Podcast # 1505 - Neste fakturanummer. Jeg kan huske at jeg lastet ned en fakturamal fra Microsoft for 20 år siden og var skuffet over at det ikke var noe i malen som økte fakturanummeret etter hver lagring. For seks år siden spilte jeg inn en kort video med noen linjer VBA-kode for å oppdatere fakturanummeret ved hver lagring. 222 000 visninger senere, det er fortsatt min # 1 video.
Tre ganger i uken blir jeg kontaktet av noen som vil endre makroen for å gjøre noe annerledes. I forrige uke fortalte noen meg at koden min gir dem en 1004-feil. Det er alltid vanskelig å feilsøke uten å se arbeidsboken. Kodelinjen som kastet feilen var en linje som omdøpte regnearket til verdien lagret i celle E5.
Slik minner jeg meg selv om hvilke tegn som er ulovlige. Følg disse trinnene:
- Trykk på Ctrl + N for en ny Excel-arbeidsbok
- Formel i A1 er
=ROW()
. Kopier ned til A1: A255. Dette gir deg raskt tallene 1 til 255 - Formel i B1 er
=CHAR(A1)
. Kopier ned til B1: B255. Dette gir deg de 255 ASCII-tegnene. Du vil merke en stor bokstav A på rad 65. -
Trykk på alt = "" + F11 for å åpne VBA. Velg Sett inn modul fra VBA-menyen. 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
- Klikk hvor som helst i makroen. Trykk på F5 for å kjøre. Det tar bare noen få sekunder. Trykk på alt = "" + Q for å lukke og gå tilbake til Excel. Makroen har forsøkt å navngi regnearket med 255 forskjellige navn. Kolonne C viser feilkoden etter hvert forsøk. Null er bra. 1004 er dårlig.
- Det ville være fint å legge til noen overskrifter slik at du kan filtrere. Kopi A1: C255. Lim inn som verdier. Sett inn en ny rad 1 med overskriftene Code, Character, Name
- Slå på filteret. Åpne rullegardinmenyen i C1. Fjern merket for noe med en feil på 0. De resterende 9 radene viser en feil på 1004.
Som du kan se på bildet nedenfor, er de 9 tegnene * / :? () de som ikke kan brukes i et regnearknavn. (Dette er Apostrophe, Asterisk, Slash, Colon, Question Mark, Left Square Bracket, Backslash, Right Square Bracket.)

Jeg gikk tilbake til personen på YouTube og spurte om celle E5 inneholdt en dato formatert som MM / DD / ÅÅÅÅ. Ved å endre til WS.Name =Format(Range("E5").Value,"MM-DD-YYYY")
inneholder datoen bindestreker i stedet for skråstreker og koden fungerte.
Her er en forklaring på viktige deler av koden:
- On Error Resume Next forteller Next at Excel ikke skal stoppe makroen når det oppstår en feil. Err.Number og Err. Beskrivelsen vil være tilgjengelig etter at feilen oppstår.
- Err.Clear fjerner alle tidligere feil fra forrige gang gjennom loop.
Forresten, det fascinerer meg alltid hvilke tegn * som er * lovlige i et regnearknavn. Figuren nedenfor er=CHAR(3)&CHAR(6)&CHAR(7)&CHAR(6)&CHAR(4)

Hver fredag vil jeg skrive om feilsøking av fiskeaktig oppførsel i Excel.
Excel-tanken om dagen
Jeg har bedt mine Excel Master-venner om deres råd om Excel. Dagens tanke å tenke på:
"Ikke alle farger i Excel er ment for faktisk bruk."
Mike Alexander