Excel将列的某些值复制到另一个工作表

时间:2016-10-17 10:39:56

标签: excel vba

我正在尝试将某些列的值复制到另一个工作表,但它无效。

我使用的代码是:

Worksheets("Report").Range(".Cells(x, 1)", ".Cells(x, 2)", ".Cells(x, 4)", ".Cells(x, 6)", ".Cells(x, 9):.Cells(x, 13)").Copy 

1 个答案:

答案 0 :(得分:0)

您在两个方面使用Range错误:

1)Range只有一个或两个参数。用法是

Range(someAddress)

其中someAddress"A1""A1:B2等字符串,甚至是"A1:B2,C3"

等联盟
Range(startCell, endCell)

其中startCellendCell是范围的第一个和最后一个单元格。它们可以通过地址("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 & "," & ...)