Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA可变列选择_Excel_Vba - Fatal编程技术网

Excel VBA可变列选择

Excel VBA可变列选择,excel,vba,Excel,Vba,我目前正在尝试完成一个宏,它将把所有人的列表拉到一个列表中,并显示所有列表中所有人的所有不同信息 我已经把所有的列表放在一起了,现在我需要做的就是选择合适的数据并编译它 我当前的代码: Sheets("Sheet2").Select Columns("E:AI").Select Selection.Copy Sheets("Sheet1").Select Range("E1").Select ActiveSheet.Paste 我正在尝试替换columns行,以便它可以选择可变长度 Colum

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

我已经把所有的列表放在一起了,现在我需要做的就是选择合适的数据并编译它

我当前的代码:

Sheets("Sheet2").Select
Columns("E:AI").Select
Selection.Copy
Sheets("Sheet1").Select
Range("E1").Select
ActiveSheet.Paste
我正在尝试替换columns行,以便它可以选择可变长度

Columns("E").Select
Range(Selection, Selection.End(x1toRight)).Select
Range(Selection, Selection.End(x1Down)).Select
Selection.Copy
当宏到达更新代码的第二行时,我得到一个运行时错误“1004”:应用程序定义的错误或对象定义的错误

当我逐行查看它时,似乎有一个问题,即列(“E”)选择的数据与以前使用列(“E:AI”)时的数据相同


任何帮助都将不胜感激。

不确切地知道您想做什么,但请在选择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

x1toRight
应该是
xLtoRight
x1Down
应该是
xLDown
。无论如何,当你从整列开始时,为什么要尝试使用
xLDown
?记录您自己执行这些操作的情况,并检查生成的代码。您还应避免使用
Select
,有关更多信息,请参阅我正在尝试选择E之后的所有列,直到数据结束。我从中提取信息的列表在我需要复制的列数上有所不同。这行吗?@user8092309好吧,如果你告诉我你的工作表是什么样子,我可以回答你的问题。或者你可以试试看。不管怎样。我确信它能起作用,或者我能做到work@user8092309你说“所有栏目”。然而,您在上面给我们的代码表明,这是一个单元格范围,而不是您选择的列。第一行选择E列,然后选择“ctrl右箭头”菜单直到结束。好的但当你按ctrl键向下箭头时,你看到混乱了吗?你想要列还是单元格的范围?我知道为什么这会让人困惑。两者都可以。我需要捕获E列中的所有信息,直到电子表格的末尾。我做到了,它成功了。我不知道为什么会这样,但我真的很感谢你的帮助。