2012-03-28 213 views
2

我想將一列從一個表複製到另一個表。我使用的代碼是一個錄製的宏,它工作正常,直到我連接到一個按鈕。當我這樣做時,它給出了一個「運行時錯誤'1004':選擇方法的範圍類失敗」運行時錯誤'1004':選擇範圍類失敗的方法VBA 2003

這是代碼,我可以看到沒有錯。當我點擊調試時,它突出了第二行。

Sheets("Count").Select 
Columns("C:C").Select 
Selection.Copy 
Sheets("Add Invintory").Select 
Range("b1").Select 
ActiveSheet.Paste 
Sheets("Count").Select 
Sheets("Count").Columns("A:A").Select 
Columns("A:A").Select 
Selection.Copy 
Sheets("Add Invintory").Select 
Range("A1").Select 
ActiveSheet.Paste 

我不知道問題是什麼。請幫助

回答

8

你應該總是避免使用.Select他們是錯誤的:)

你是不是想這個的一個重要原因?

Sub Sample() 
    Sheets("Count").Columns("C:C").Copy _ 
    Sheets("Add Invintory").Columns("B:B") 

    Sheets("Count").Columns("A:A").Copy _ 
    Sheets("Add Invintory").Columns("A:A") 
End Sub 
+1

+1的建議,以避免。選擇。 – 2012-03-29 08:21:22

+0

這是完美的謝謝。 – 2012-03-29 17:50:50

3

我認爲問題在於您已將代碼寫入另一個工作表的代碼模塊中。如果我在Sheet1中,然後編寫

Sheets("Sheet2").Select 
Columns("A:A").Select 

...然後Excel假定您引用Sheet1上的列,因爲它將當前工作表視爲默認值。因此,你已經告訴Excel「選擇Sheet 2」,然後「選擇Sheet 1上的一列」......它不能這樣做,它會給你一個錯誤信息。最好的解決方案不是使用'選擇'...但是你仍然可以看到Siddharth的代碼中他必須明確地參考工作表地址

如果放置在ThisWorkbook模塊中,您的原始代碼將會工作。進入代碼位置正朝着這個Excel help video

+0

謝謝你。我覺得我更瞭解excel。 – 2012-03-29 17:52:25

0

末解釋當你把VBA代碼到「視圖表代碼」 ..有一定幫助使用Application.Run ...運行宏..

我有問題,我直接輸入宏表單代碼..在另一個表中選擇它聲稱運行時錯誤1004 ..所以我創建宏分開,然後我把Application.Run我的宏從表代碼。

作品很完美;)

這Application.Run也有助於當你有太大宏練成要求它不能那麼大。你可以很容易地分爲幾個部分,然後只是運行應用程序...;)

相關問題