Odwoływanie się do arkusza ze zmienną obiektu - porady dotyczące programu Excel

Spisie treści

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.

Interesujące artykuły...