Excel VBA可变列选择

时间:2017-05-31 13:52:30

标签: excel excel-vba vba

我目前正在尝试完成一个宏,它将所有人的列表汇集到一个列表中,并显示所有列表中所有人的所有不同信息。

我已经达到了将所有列表放在一起的地步,现在我需要做的就是选择正确的数据并进行编译。

我目前的代码:

Sheets("Sheet2").Select
Columns("E:AI").Select
Selection.Copy
Sheets("Sheet1").Select
Range("E1").Select
ActiveSheet.Paste

我正在尝试替换列行,以便它可以选择一个可变长度。

Columns("E").Select
Range(Selection, Selection.End(x1toRight)).Select
Range(Selection, Selection.End(x1Down)).Select
Selection.Copy

当宏到达我更新的代码中的第一行时,我得到运行时错误'1004':应用程序定义或对象定义错误。

当我逐行浏览时,列(“E”)选择与之前的列(“E:AI”)相同的数据似乎存在问题。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

不完全确定你要做什么,但这段代码直到选择E1 - >最后一列和最后一行填写。

您需要根据自己的需要进行调整。我假设你的表是方形的,如果不改变代码。

我计算了E列中使用的行数,如果这不是你想要改变的那一行 我还查找了第1行的最后一列。如果这不正确,请更改。

LastCol = ActiveSheet.Cells(1, ActiveSheet.Columns.Count).End(xlToLeft).Column ' here you need to change '1' to what row to look at
LastRow = Cells(Rows.Count, "E").End(xlUp).Row ' change "E" to fit your need
Range("E1:" & Split(Cells(1, LastCol).Address(True, False), "$")(0) & LastRow).Select