Objektimuutujaga töölehele viitamine - Exceli näpunäited

Lang L: none (table-of-contents)

Joe üritab uue makro viga lahendada, mille ta just kirjutas.

Rida, mis määrab NextRow, tagastab vea, mis ütleb "Object Variable või With Block Variable Not Set".

Objekti muutujad on päris lahedad. Vanades näpunäidetes kasutaksin sellist tavalist muutujat:

OrigName = ActiveSheet.Name Worksheets(OrigName).Copy

On parem viis. Muutuja saab määratleda mis tahes objektiks, näiteks tööleheks. Sellel on mitu eelist. Lühem on objekti muutuja kasutamine töölehtede (OrigName) asemel. Samuti saate koodi sisestamise ajal VBA teada, et muutuja on tööleht ning pakub pärast punkti sisestamist sobivaid omadusi ja meetodeid. Siin on uus kood:

Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy

Kuid trikk seisneb selles, et kui teil on objekti muutuja, tuleb see määrata märksõnaga Set. Kui te ei sisesta komplekti koodi, saate mõnevõrra mitte-intuitiivse "Objekti muutuja või plokimuutujaga pole määratud". Joe peab lihtsalt muutlikule ülesandele eelnema sõnaga Set.

Huvitavad Artiklid...