Joe próbuje rozwikłać błąd w nowym makrze, które właśnie napisał.
Wiersz, który przypisuje następny wiersz, zwraca błąd o treści „Zmienna obiektu lub z nieustawioną zmienną blokową”.
Zmienne obiektowe są całkiem fajne. W starych wskazówkach w, użyłbym zwykłych zmiennych, takich jak te:
OrigName = ActiveSheet.Name Worksheets(OrigName).Copy
Jest lepszy sposób. Możesz zdefiniować zmienną jako dowolny obiekt, na przykład arkusz. Ma to kilka zalet. Krótsze jest użycie zmiennej obiektu zamiast Arkuszy roboczych (OrygName). Ponadto podczas wpisywania kodu VBA będzie wiedział, że zmienna jest arkuszem roboczym i po wpisaniu kropki oferuje odpowiednie właściwości i metody. Oto nowy kod:
Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy
Jednak sztuczka polega na tym, że gdy masz zmienną obiektową, musisz ją przypisać słowem kluczowym Set. Jeśli nie umieścisz zestawu w kodzie, otrzymasz nieco nieintuicyjny komunikat „Object Variable or With Block Variable Not Set”. Joe musi po prostu poprzedzić przypisanie zmiennej słowem Set.