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列中的所有信息,直到电子表格的末尾。我做到了,它成功了。我不知道为什么会这样,但我真的很感谢你的帮助。