我只需要使用变量将一张(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))
答案 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