使用Excel宏选择范围
我想编写一个宏,用使用Excel宏选择范围,excel,range,selection,vba,Excel,Range,Selection,Vba,我想编写一个宏,用+ 过程应该是这样的 选择单元格A1 用++ A在不取消范围选择的情况下选择单元格A1(使用) ActiveCell.Offset(0,2)。选择 然后用++然后++从C1到C9选择范围 按照我的示例数据中的这些步骤,224579和100007在同一行中被选中,100008未被选中 我想选择A1到A9之间的范围,也要选择C1到C9之间的范围,但我希望宏在不定义A1和A9这样的范围的情况下执行此操作,因为经过一些更改后,范围可能会更改为A1到A5。因此,我希望宏能够相应地调整并获
+
过程应该是这样的
++
)ActiveCell.Offset(0,2)。选择
++
然后++
从C1到C9选择范围我想选择A1到A9之间的范围,也要选择C1到C9之间的范围,但我希望宏在不定义A1和A9这样的范围的情况下执行此操作,因为经过一些更改后,范围可能会更改为A1到A5。因此,我希望宏能够相应地调整并获取数字。不确定,但您希望这样吗
A B C
123455 XXX 99999
123456 XX 100000
123457 XXX 100001
174564 XXXX 100002
184567 100003
194570 100004
204573 100005
214576 100006
224579 100007
100008
将代码粘贴到工作表代码模块中,并在工作表上选择一个区域。如果A1是活动单元格,则此操作应有效
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Static self_protect As Boolean
If self_protect Then Exit Sub
self_protect = True
Set Target = Target.Areas(1)
Application.Union(Target, Target.Offset(0, 2)).Select
self_protect = False
End Sub
我不明白?我将此代码复制并粘贴到宏模块,然后单击“运行”,打开经典的宏运行/创建/取消窗口,所有按钮均未激活(取消除外)@user768199复制到工作表代码模块(以您希望代码处理的工作表命名的代码模块),而不是宏模块。您不必显式地运行它。只需在那张纸上选择一个范围。哇。如何在宏中执行此操作?另外,如果我想在选择中添加更多的列,如第4列和第6列,我想选择A1到A9之间的范围以及C1到C9。但我希望宏在没有像A1和A9这样定义范围的情况下执行此操作,因为可能范围会像A1一样变化,经过一些修改后会变为A5,所以我希望宏适应并获取数字accordingly@eggplant_parm谢谢,但这将选择包括B列在内的整个范围。我不想选择该列。@user768199这将只选择A列和C列。哦,是的,eggplant\u parm您已经更改了代码:)如果我想再次添加E列,直到同一行,例如?选择一个C E直到同一行?@user768199您可以在union()中添加另一个范围,偏移量设置为4而不是2。对于遇到此问题的任何其他人,使用Office内置的宏记录器可以使您很容易找到此类解决方案。
Union(Range(ActiveCell, ActiveCell.End(xlDown)), Range(ActiveCell.Offset(0, 2), ActiveCell.End(xlDown).Offset(0, 2))).Select