Excel VBA变量列选择
问题描述:
我目前正在尝试完成一个宏,它将所有人的列表放到一个列表中,并显示所有列表中的人员的所有不同信息。Excel 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
当宏获取对我更新的代码第2号线,我得到一个运行时错误“1004”:应用程序定义或对象定义错误。
当我逐行浏览它时,Columns(“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'。 – Jeeped
为什么在开始使用完整列时尝试使用'xlDown'?记录下自己执行这些操作并检查您生成的代码。 – Jeeped
你也应该避免使用'Select',参见[这个答案](https://*.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)了解更多信息 – Jordan