我已經在這個問題上花了幾個小時,但是我沒有成功找到工作解決方案。Excel VBA:循環遍歷單元格並將值複製到另一個工作簿
這裏是我的問題描述:
我想遍歷一定範圍內的一個工作簿細胞和值複製到另一個工作簿。根據第一個工作簿中的當前列,我將這些值複製到第二個工作簿中的另一個工作表中。 當我執行我的代碼時,我總是得到runtime error 439: object does not support this method or property
。
我代碼看起來或多或少是這樣的:
Sub trial()
Dim Group As Range
Dim Mat As Range
Dim CurCell_1 As Range
Dim CurCell_2 As Range
Application.ScreenUpdating = False
Set CurCell_1 = Range("B3") 'starting point in wb 1
For Each Group in Workbooks("My_WB_1").Worksheets("My_Sheet").Range("B4:P4")
Set CurCell_2 = Range("B4") 'starting point in wb 2
For Each Mat in Workbooks("My_WB_1").Worksheets("My_Sheet").Range("A5:A29")
Set CurCell_1 = Cells(Mat.Row, Group.Column) 'Set current cell in the loop
If Not IsEmpty(CurCell_1)
Workbooks("My_WB_2").Worksheets(CStr(Group.Value)).CurCell_2.Value = Workbooks("My_WB_1").Worksheets("My_Sheet").CurCell_1.Value 'Here it break with runtime error '438 object does not support this method or property
CurCell_2 = CurCell_2.Offset(1,0) 'Move one cell down
End If
Next
Next
Application.ScreenUpdating = True
End Sub
我已經做了廣泛的研究,我知道如何,如果你使用顯式的名稱爲您的對象從一個工作簿中的值複製到另一個(表&範圍),但我不知道爲什麼它不工作,就像我使用變量實現它。 我也搜索了stackoverlow和 - 顯然谷歌,但我沒有找到類似的問題,可以回答我的問題。
所以我問題是: 你能告訴我在哪裏,我的代碼錯誤是或者是否有其他使用不同的方式來完成相同的更簡單的方法?
這是我的第一個問題,所以我希望我的代碼格式,問題以及提供的信息都可以。否則,讓我知道。
非常感謝!你的回答幫了我很多!我根據您的建議更改了代碼,並立即運行! 表達你的觀點** 2)**:其實你是對的,工作表丟失了。如果我理解你是正確的,那麼範圍是指特定的單元格,工作表和工作簿,而不僅僅是單元格。但是因爲我在每個內部循環中使用* Offset *來移動這個範圍,所以我必須在外部循環中重置它。 – Patrick
'如果我理解你是正確的,那麼範圍指的是一個特定的單元格,一個工作表和一個工作簿,而不僅僅是一個單元格。'否:)範圍表示一個單元格,一行,一列或在工作表中包含一個或多個連續的單元格塊的單元格。 –