Hvilke tegn er lovlige i et regnearknavn - Excel-tips

Innholdsfortegnelse

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:

  1. Trykk på Ctrl + N for en ny Excel-arbeidsbok
  2. Formel i A1 er =ROW(). Kopier ned til A1: A255. Dette gir deg raskt tallene 1 til 255
  3. 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.
  4. 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
  5. 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.
  6. 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
  7. 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.)

De 9 tegnene som er synlige i kolonne B, kaster en 1004-feil hvis du prøver å bruke dem i et regnearknavn.

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)

Bruk ActiveSheet.Name = ActiveCell.Value

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

Interessante artikler...