用于复制范围的VBA语法

时间:2017-08-21 16:27:19

标签: vba

我只需要使用变量将一张(ws1)中的数据复制到另一张(ws2) - 仅作为值。

我虽然这样可行,但事实并非如此:

ws2.Range(Cells(StrtRow, 2), Cells(lRow, lCol)) = _
ws1.Range(Cells(StrtRow, 2), Cells(lRow, lCol))

然而这有效:

ws2.Range.Cells(1, 1) = ws1.Range.Cells(53, 2)

问题是我需要使用变量选择一个范围,而不仅仅是一个单元格......令人惊讶的是,这也不起作用:

ws2.Range(Cells(53, 2), Cells(471, 46)) =  _
ws1.Range(Cells(53, 2), Cells(471, 46))

1 个答案:

答案 0 :(得分:0)

Range()内的所有范围必须引用同一Cells

上的Worksheet 仅当ws1.Range(Cells(StrtRow, 2), Cells(lRow, lCol))ws1时,

ActiveSheet才会正常工作,因为不合格的范围会自动引用ActiveSheet上的范围

这是正确的语法:

ws2.Range(ws2.Cells(StrtRow, 2), ws2.Cells(lRow, lCol)).Value = ws1.Range(ws1.Cells(StrtRow, 2), ws1.Cells(lRow, lCol)).Value