Açıklamalarda tartışıldığı gibi, VBA'da etkin olmayan (veya Range
nesne üzerinde) Sheets
seçemezsiniz. aldığınız hataya neden olur kod
Sheets(1).Activate
Sheets(2).Range("A1").Select
aşağıdaki Örneğin
. Senin durumunda
, Select
aktif olmayan bir tabaka çalışıyorsunuz gibi görünüyor - sizin mainWS
nesne muhtemelen bu kodu aradığınız noktada ActiveSheet
değildir. Eğer özelliklerini ya da her türlü diğer işlemleri almak ya komutuyla ActiveSheet
ile aktive çalışma sayfasına başvurabilirsiniz
if (ActiveSheet.Name <> mainWS.Name) then
msgbox ("Going to crash after clicking ok!")
end if
mainWS.Select
Not: Eğer kod sonuna aşağıdaki eklerseniz bu oluyor eğer test etmenin kolay bir yoludur Yapmakla ilgileniyorsun.
Bu hata, çalışma kitabındaki tüm çalışma sayfalarında çalışma döngüsünüz varsa ve gizli sayfalar varsa da oluşabilir. Bunun için uyanık. Sık sık sorunların her türlü içine çalıştırabilirsiniz gibi ben Option Explicit
kullanmayı düşünün değilse -
Son ve özel hata mesajıyla ilgisi, burada kopyalamak vermedi sadece bir yerde bu değişkenleri ilan ve varsayıyoruz VBA kodunuzun üstünde Option Explicit
olmadan. Yukarıdaki kabul ederken
olarak ayarlanırsa Sil işlevi çalışmaz dikkat etmek de önemlidir? Çalışma kitabı aynı mıydı? – enderland
"mainWB" etkin mi? –
Ve dolayısıyla '.Select' kaçınılmalıdır :) Bu bağlantıya bakın http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select –