Выбор диапазона с помощью Excel Macro - PullRequest
0 голосов
/ 24 мая 2011
  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

Я хотел бы написать макрос для выбора диапазона, используя <ctrl> + <down arrow>

Процесс должен быть таким

  1. Выберите ячейку A1
  2. Выберите диапазон с помощью <shift> + <ctrl> + <page down>
  3. Выбор ячейки A1 без отмены выбора диапазона (с помощью <ctrl>)
  4. ActiveCell.Offset(0, 2).Select
  5. Затем выберите диапазон от C1 до C9 с помощью <shift> + <ctrl> + <page down>, затем <shift> + <up arrow>

Следуя этим шагам в моих примерах данных, 224579 и 100007 выбраны в одной строке, 100008 не выбраны.

Я хочу выбрать диапазон от A1 до A9, а также от C1 до C9, но я хочу, чтобы макрос делал это без определения диапазона, такого как A1 и A9, потому что диапазон, вероятно, изменится, как A1 изменится на A5 после некоторых изменений , Итак, я хочу, чтобы макрос адаптировался и соответственно захватывал числа.

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Это должно работать, если A1 является активной ячейкой.

Union(Range(ActiveCell, ActiveCell.End(xlDown)), Range(ActiveCell.Offset(0, 2), ActiveCell.End(xlDown).Offset(0, 2))).Select
0 голосов
/ 24 мая 2011

Не уверен, но ты этого хочешь?

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

Вставьте код в модуль кода рабочего листа и выберите диапазон на листе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...