我已经花了数小时来尝试解决这个问题,但是没有找到有效的解决方案。
以下是我的问题描述:
我想循环遍历一个工作簿中的某个单元格范围,并将值复制到另一个工作簿中。根据第一个工作簿中的当前列,我将值复制到第二个工作簿中的不同工作表中。当我执行代码时,总是出现运行时错误439:对象不支持此方法或属性
。
我的代码看起来差不多是这样的:
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
我已经进行了详尽的研究,如果您使用明确的对象名称(工作表和范围),我知道如何将值从一个工作簿复制到另一个工作簿,但是我不知道为什么使用变量实现时它不起作用。我还在stackoverflow和Google上搜索过,但是没有找到类似的问题来回答我的问题。
所以我的问题是: 你能告诉我代码中的错误在哪里,或者是否有另一种更简单的方法使用不同的方式实现相同的效果吗?
这是我在这里的第一个问题,因此我希望我的代码格式、问题提出和提供的信息都没问题。如果有问题,请让我知道。