Hi Leute,
Ich möchte den Namen von Listobjects über eine VBA-Inputbox vergeben und versuche herauszufinden, ob es hier verbotene Zeichen gibt. Dazu habe ich folgenden Link gefunden: Umbenennen einer Excel-Tabelle - Microsoft-Support
Nun habe ich das Ganze mal durchgetestet und festgestellt, dass der Eigenschaft Name per VBA String mit allen 255 Zeichen zugeordnet werden können. Die im Link genannten Einschränkungen beziehen sich offenbar nur auf die Eigenschaft DisplayName.
Wenn ich also versuche meinen intelligenten Tabellen Namen mit verbotenen Zeichen zuzuordnen wird im Ribbon "Tabellenentwurf" ein angepasster Name angezeigt. Soweit so gut. Wenn ich nun aber über VBA ein Listobject mit dem angezeigten Namen anwählen will, erhalte ich den Lautzeitfehler 9 - "Index außerhalb des gültigen Bereichs". Anwählen kann ich das Listobject dafür über meinen falschen Namen.
Mein Testcode:
Sub Test()
ActiveSheet.ListObjects(1).Name = "ABCDE!FG"
ActiveSheet.ListObjects(2).Name = "ABCDE""FG"
ActiveSheet.ListObjects(3).Name = "C"
MsgBox "Name:" & ActiveSheet.ListObjects(1).Name & " Displayname:" & ActiveSheet.ListObjects(1).DisplayName
MsgBox "Name:" & ActiveSheet.ListObjects(2).Name & " Displayname:" & ActiveSheet.ListObjects(2).DisplayName
MsgBox "Name:" & ActiveSheet.ListObjects(3).Name & " Displayname:" & ActiveSheet.ListObjects(3).DisplayName
MsgBox ActiveSheet.ListObjects(ActiveSheet.ListObjects(1).DisplayName).Name 'Hier kommt der Fehler.
End Sub
Das ist verwirrend, denn zuerst sucht man ja nach dem sichtbaren Namen, den man im Ribbon lesen kann.
Nun frage ich mich, ob damit die Displayname-Eigenschaft obsolet ist, und warum deren Inhalt immer noch in Excel als Name der intelligenten Tabelle angezeigt wird. Die Hilfeseite von Microsoft bringt mich hier nicht weiter: ListObject.DisplayName-Eigenschaft (Excel) | Microsoft Learn
Hat von euch jemand Erfahrung damit? Muss ich bei der Prüfung der Namensvergabe irgendwas beachten, was später zu Problemen führen könnte? Wenn ja, wie finde ich die verbotenen Zeichen heraus? Die Namensgrenze von 255 Zeichen scheint weiter gültig zu sein.
Gruß Mr. K.
|