Mam trochę kodu, w którym po naciśnięciu przycisku wywołuje podpunktu, który doda nowy arkusz do skoroszytu, a następnie zmienić kodową nazwę Arkusz, aby ułatwić późniejszy odsyłacz w moim kodzie. Jest to w następujący sposób:Arkusz zmiany nazwy VBA nazwa kodowa Błąd wykonania 9: Indeks dolny poza zakresem
Dim wbk As Workbook
Dim wks As Worksheet
Set wbk = ThisWorkbook
wbk.Sheets.Add.Name = "Admin - Save Log"
Set wks = wbk.Worksheets("Admin - Save Log")
wks.Parent.VBProject.VBComponents(wks.CodeName).Name = "wksAdminSaveLog"
to nie wydają się działać - JEDNAK - tylko kiedy mam okno „Developer” otwarty lub wcześniej miał je otwarte.
Jeśli kliknę przycisk, gdy po raz pierwszy otworzę dokument programu Excel (nie otwierając okna "Programista"), to dodaje on arkusz, ale pojawia się następujący błąd i nie zmienia nazwy kodowej arkusza:
błąd Run-time „9”: Indeks poza zakresem
dopiero po naciśnięciu Debug, a następnie uruchomić kod po zamknięciu okna „Twórca” jest otwarty ponownie, że dodaje on kryptonim.
Czy jest jakiś sposób obejścia tego, aby użytkownik nie musiał otwierać okna programisty, aby działał poprawnie?
Dzięki
Powinieneś 'Set wks = wbk.Sheets.Add', * a następnie * ustawić jego' .Name'. W ten sposób nie musiałbyś mieć literału napisanego dwa razy. –
Możesz wypróbować wywołanie "DoEvents" lub dwa. Jeśli możesz, prawdopodobnie bezpieczniej byłoby użyć wywołania 'Application.Ontime', aby uruchomić kod w celu zmiany nazwy kodowej (i wszystkiego, co się dzieje). – Rory
Aby wyjaśnić, czy błąd wykonania 9 został podniesiony na dostęp 'wks.Parent.VBProject.VBComponents (wks.CodeName)'? –