使用变量来定义范围

时间:2016-01-11 05:14:02

标签: excel vba excel-vba

我试图将8 x 1范围的值存储到一系列相同的维度中,但是在工作簿中的另一个工作表上。这很简单,只是我的脚本循环遍历这些相同尺寸的不同范围,我需要将它们全部存储在第二张纸上。目前我的代码如下所示:

Sheets("Sheet1").Range(Cells(i, 2), Cells(i + 7, 2)).Value = Sheets("Sheet2").Range("OriginalData").Value

哪里"我"是在循环中用作迭代器的变量。

此代码抛出错误"错误1004"应用程序定义或对象定义错误""。有人可以解释我做错了什么,以及如何以这种方式动态地正确定义范围对象?

2 个答案:

答案 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")