A munkalapok neve szinte bármire módosítható. Ez a * majdnem * rész számomra homályos. Néhány karakter nem engedélyezett a munkalap fülön. De hogyan lehet kideríteni, hogy melyik karakterek? Ma megmutatom, hogyan.
Az egyik legnépszerűbb videóm a YouTube-on a Podcast # 1505 - Next Invoice Number. Emlékszem, hogy 20 évvel ezelőtt letöltöttem egy számlasablont a Microsofttól, és csalódott voltam, hogy a sablonban semmi sem növelte a számlaszámot minden Mentés után. Hat évvel ezelőtt készítettem egy rövid videót néhány sor VBA kóddal, hogy minden mentéskor frissítsem a számla számát. 222.000 megtekintéssel később ez marad az első videóm.
Hetente háromszor fordul hozzám valaki, aki meg akarja változtatni a makrót, hogy valami mást tegyen. A múlt héten valaki azt mondta nekem, hogy a kódom 1004-es hibát ad nekik. Mindig nehéz a hibaelhárítás a munkafüzet megtekintése nélkül. A hibát dobó kódsor egy olyan sor volt, amely átnevezte a munkalapot az E5 cellában tárolt értékre.
Így emlékeztetem magam arra, hogy mely karakterek illegálisak. Kovesd ezeket a lepeseket:
- Nyomja meg a Ctrl + N billentyűkombinációt egy új Excel munkafüzethez
- Az A1 képlet az
=ROW()
. Másolja le A1: A255-be. Ez gyorsan megadja az 1-től 255-ig terjedő számokat - A B1 képlet az
=CHAR(A1)
. Másolja le a B1: B255-be. Ez megadja a 255 ASCII karaktert. Észrevesz egy A betűt a 65. sorban. -
Nyomja meg az alt = "" + F11 billentyűt a VBA megnyitásához. A VBA menüben válassza a Modul beszúrása lehetőséget. Másolja a következő kódot a VBA-ba.
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
- Kattintson bárhová a makrón belül. A Futtatáshoz nyomja meg az F5 billentyűt. Ez csak néhány másodpercet vesz igénybe. A bezáráshoz és az Excelbe való visszatéréshez nyomja meg az alt = "" + Q gombot. A makró megkísérelte 255 különböző névvel megnevezni a munkalapot. A C oszlop a hibakódot mutatja minden kísérlet után. A nulla jó. 1004 rossz.
- Jó lenne hozzáadni néhány címsort, hogy szűrhessen. A1. Másolat: C255. Beillesztés értékként. Helyezzen be egy új 1. sort a Code, Character, Name címsorokkal
- Kapcsolja be a szűrőt. Nyissa meg a C1 legördülő menüt. 0 hibával törölje a jelölést. A fennmaradó 9 sor 1004 hibát mutat.
Amint az alábbi képen látható, a 9 karakteres * / :? () karakterek nem használhatók a munkalap nevében. (Ezek aposztróf, csillag, perjel, kettőspont, kérdőjel, bal szögletes zárójel, hátsó perjel, jobb szögletes zárójel.)

Visszatértem a YouTube-hoz, és megkérdeztem, hogy az E5 cella tartalmaz-e MM / NN / ÉÉÉÉ formátumú dátumot. A WS.Name névre váltással =Format(Range("E5").Value,"MM-DD-YYYY")
a dátum perjel helyett kötőjelet tartalmaz, és a kód működött.
Itt van a kód fontos részeinek magyarázata:
- On Error Resume Next azt mondja az Excel-nek, hogy hiba esetén ne állítsa le a makrót. Az Err.Number és az Err.Description a hiba észlelése után lesz elérhető.
- Az Err.Clear törli a cikluson keresztül az előző hibát.
Egyébként mindig elbűvöl, hogy melyik karakterek * legálisak a munkalap nevében. Az alábbi ábra az=CHAR(3)&CHAR(6)&CHAR(7)&CHAR(6)&CHAR(4)

Minden pénteken írok a hibás viselkedés hibakereséséről az Excelben.
Excel gondolata a napnak
Az Excel Master barátaimtól kértem tanácsokat az Excel-mel kapcsolatban. Mai gondolat, hogy elgondolkodjak:
"Az Excel összes színét nem a tényleges használatra szánják."
Mike Alexander