2012-11-26 71 views
1

爲了達到這個問題,我縮短了一段代碼,但是我得到的錯誤是相同的。在VBA中循環瀏覽工作表時選擇一個範圍

當試圖選擇與每個工作表中A列數據的單元格,並用它做的東西,我得到的第一個工作表後的錯誤:

Sub quickSub() 

Dim sh As Worksheet 

For Each sh In Worksheets 
    sh.Range("A6", Range("A6").End(xlDown)).Select 

''Random bits of code here where I manipulate selection on each worksheet 

Next 

End Sub 

我得到的錯誤是:

"Run-time error '1004': Method 'Range' of object'_Worksheet' failed. 

回答

5

試試這個:

sh.Activate 
sh.Range("A6", "A" & sh.Range("A6").End(xlDown).row).Select 

我確定的範圍內參照的是右側板012年底擊落而且我最終得到的結果是返回最後一行的數字,並與可能不需要的列字符連接起來,但可能使您更容易進行調試。

更新:

添加啓動訂單。選擇可能需要工作表處於活動狀態。

UPDATE2:

這裏的「正確」的方式做到這一點沒有使用select 使用這種方法直接referneces而不需要由工作表中移動工作表數據。 此最佳做法會提高您的代碼性能

Sub quickSub() 

Dim sh As Worksheet 

For Each sh In Worksheets 
    With sh.Range("A6", "A" & sh.Range("A6").End(xlDown).row) 
     '- lines that manipulate the 'selection' in the above with 
     .Value = "NewValue" 
     .font.bold = true 


    End With 

''Random bits of code here where I manipulate selection on each worksheet 

Next 

End Sub 
+0

感謝您的迴應!當我使用的是大致相同的事情發生,除了現在的錯誤是: 「運行時錯誤‘1004’: 範圍類的選擇方法失敗」 –

+0

更新的答案。在嘗試選擇它之前,請確保您正在激活一張紙。 – danielpiestrak

+0

作品!非常感謝你的幫助! –