2012-10-02 28 views
5
Set mainWB = Workbooks("Copy Paste.xlsb") 
Set mainWS = mainWB.Sheets("Sheet1") 
Set testWS = mainWB.Sheets("Sheet3") 

mainWS.Select 

Ben Excel VBA son satırında bir hata almaya devam:Yöntem 'Nesnenin _Worksheet' seçilmesi başarısız oldu - neden?

"Yöntem Seç Nesne '_Worksheet' başarısız"

Bir fikrin neden ve nasıl bu sorunu gidermek için? Teşekkür ederim!

+0

olarak ayarlanırsa Sil işlevi çalışmaz dikkat etmek de önemlidir? Çalışma kitabı aynı mıydı? – enderland

+1

"mainWB" etkin mi? –

+2

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 –

cevap

6

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

+0

Mükemmel cevap. Bilgi ve sunum için tebrikler. – NoChance

+0

@NoChance Nazik sözlerin için teşekkür ederim. – enderland

1

, çalışma sayfasının görünürlüğü şu anda sayfaları aslında sheet1/Sheet3 adlı Are xlSheetVeryHidden