Nuoroda į darbalapį su objekto kintamuoju - „Excel“ patarimai

Turinys

Joe bando išsiaiškinti ką tik parašyto makro klaidą.

Eilutė, priskirianti „NextRow“, pateikia klaidą, kurioje sakoma „Objekto kintamasis arba su bloko kintamuoju nenustatyta“.

Objekto kintamieji yra gana šaunūs. Senuose patarimuose naudosiu įprastą kintamąjį:

OrigName = ActiveSheet.Name Worksheets(OrigName).Copy

Yra geresnis būdas. Kintamuoju galite apibrėžti bet kokį objektą, pvz., Darbalapį. Yra keletas privalumų. Trumpiau naudoti objekto kintamąjį vietoje darbalapių (OrigName). Be to, kai vedate kodą, VBA žinos, kad kintamasis yra darbalapis, ir įvedę tašką pasiūlys tinkamas ypatybes ir metodus. Štai naujas kodas:

Dim WSO as Worksheet Set WSO = Activesheet WSO.Copy

Tačiau apgaulė yra ta, kad kai turite objekto kintamąjį, jis turi būti priskirtas raktiniam žodžiui „Set“. Jei nepavyks įvesti rinkinio į kodą, gausite šiek tiek ne intuityvų „Object Variable or With Block Variable Not Set“. Joe paprasčiausiai turi įvesti kintamą užduotį žodžiu „Set“.

Įdomios straipsniai...