使用Excelmacros的范围select

ABC 123455 XXX 99999 123456 XX 100000 123457 XXX 100001 174564 XXXX 100002 184567 100003 194570 100004 204573 100005 214576 100006 224579 100007 100008 

我想用<ctrl> + <down arrow>编写一个用于select范围的macros

这个过程应该是这样的

  1. select单元格A1
  2. <shift> + <ctrl> + <page down>select一个范围
  3. 在不取消范围select的情况下对单元格A1进行曝光(使用<ctrl>
  4. ActiveCell.Offset(0, 2).Select
  5. 然后通过<shift> + <ctrl> + <page down>然后<shift> + <up arrow>从C1到C9进行范围select。

在我的示例数据中执行这些步骤之后,在同一行中select了224579和100007,未select100008。

我想要selectA1到A9之间的范围,也是C1到C9,但是我希望macros没有像A1和A9那样定义一个范围,因为范围可能会改变,就像A1在一些改动之后会变成A5一样。 所以,我想让macros适应并相应地获取数字。

这应该工作,如果A1是活动单元格。

 Union(Range(ActiveCell, ActiveCell.End(xlDown)), Range(ActiveCell.Offset(0, 2), ActiveCell.End(xlDown).Offset(0, 2))).Select 

不确定,但是你想要这个吗?

 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 

将代码粘贴到工作表代码模块中,然后在工作表上select一个范围。