我正在尝试将某些列的值复制到另一个工作表,但它无效。
我使用的代码是:
Worksheets("Report").Range(".Cells(x, 1)", ".Cells(x, 2)", ".Cells(x, 4)", ".Cells(x, 6)", ".Cells(x, 9):.Cells(x, 13)").Copy
答案 0 :(得分:0)
您在两个方面使用Range
错误:
1)Range
只有一个或两个参数。用法是
Range(someAddress)
其中someAddress
是"A1"
,"A1:B2
等字符串,甚至是"A1:B2,C3"
或
Range(startCell, endCell)
其中startCell
和endCell
是范围的第一个和最后一个单元格。它们可以通过地址("A1"
)或范围对象(Cells(1,1)
)提供。
请注意,您也可以传递包含多个单元格的范围,但我不完全确定它是如何起作用的。
2)你将你的参数放在引号中,使它们成为字符串。这意味着您不会将单元格引用传递给Range
,但字符串".Cells(x, 1)"
(甚至不会替换x)。
现在,您可以使用Union
Union(.Cells(x, 1), .Cells(x, 2), ... )
或使用单元格地址
创建地址字符串.Range(.Cells(x, 1).Address & "," & .Cells(x, 2).Address & "," & ...)