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

mainWS.Select 

Continuo a ricevere un errore sull'ultima riga in Excel VBA:Selezione metodo dell'oggetto "_Worksheet" non riuscito - perché?

"Metodo Select dell'oggetto '_Worksheet' non riuscita"

Qualsiasi idea del perché o il modo di risolvere questo problema? Grazie!

+0

I vostri fogli in realtà il nome sheet1/Foglio3? La cartella di lavoro ha lo stesso nome? – enderland

+1

È attivo 'mainWB'? –

+2

E quindi ".Select" dovrebbe essere evitato :) Vedi questo link http://stackoverflow.com/questions/10714251/excel-macro-avoiding-using-select –

risposta

6

Come discusso nei commenti, non è possibile selezionare Sheets in VBA che non sono attivi (o Range oggetti su di essi).

Per esempio il codice

Sheets(1).Activate 
Sheets(2).Range("A1").Select 

causerà l'errore che si riceve dopo.

Nel tuo caso, sembra che si sta tentando di Select un foglio che non è attiva - l'oggetto mainWS non è presumibilmente il ActiveSheet in corrispondenza del punto che si sta chiamando questo codice. Un modo semplice per verificare se questo sta accadendo è che se si aggiunge quanto segue alla fine del codice:

if (ActiveSheet.Name <> mainWS.Name) then 
    msgbox ("Going to crash after clicking ok!") 
end if 
mainWS.Select 

Si noti che è possibile fare riferimento al foglio di lavoro attivato con il comando ActiveSheet di ottenere sia le proprietà o qualunque altra operazione sei interessato a fare.

Questo errore può verificarsi anche se si lavora in loop su tutti i fogli di lavoro della cartella di lavoro e ci sono dei fogli nascosti. Cercalo.


scorso, e non collegati al tuo messaggio di errore specifico, presumo si dichiara tali variabili da qualche parte e semplicemente non li copia qui - se non vorrei considerare l'utilizzo di Option Explicit come spesso è possibile imbattersi in ogni tipo di problema senza avere Option Explicit nella parte superiore del codice VBA.

+0

Ottima risposta. Congratulazioni per la conoscenza e la presentazione. – NoChance

+0

@NoChance grazie per le gentili parole. – enderland

1

Mentre sono d'accordo con quanto sopra, è anche importante notare che la funzione Delete non funziona se la visibilità del foglio di lavoro è attualmente impostato xlSheetVeryHidden

Problemi correlati