我试图将8 x 1范围的值存储到一系列相同的维度中,但是在工作簿中的另一个工作表上。这很简单,只是我的脚本循环遍历这些相同尺寸的不同范围,我需要将它们全部存储在第二张纸上。目前我的代码如下所示:
Sheets("Sheet1").Range(Cells(i, 2), Cells(i + 7, 2)).Value = Sheets("Sheet2").Range("OriginalData").Value
哪里"我"是在循环中用作迭代器的变量。
此代码抛出错误"错误1004"应用程序定义或对象定义错误""。有人可以解释我做错了什么,以及如何以这种方式动态地正确定义范围对象?
答案 0 :(得分:2)
您的问题是Cells
内的Sheets("Sheet1").Range
不知道它们应属于Sheets("Sheet1")
。
with Sheets("Sheet1")
.Range(.Cells(i, 2), .Cells(i + 7, 2)) = _
Sheets("Sheet2").Range("OriginalData").Value
end with
'alternate
Sheets("Sheet1").Range("B" & i).Resize(8, 1) = _
Sheets("Sheet2").Range("OriginalData").Value
With ... End With statement允许您明确地将父工作表传递到.Range
和.Cells
,并带有前缀句点(又名句号)。
答案 1 :(得分:-1)
复制和粘贴是否有效?我不确定您的数据的具体细节,但似乎复制和粘贴会更好。
所以喜欢
Sheets("Sheet1").Range("x:x").Copy Sheets("Sheet2").Range("x:x")