Макрос VBA Excel: смещение выделения ячеек, выбор, определенный макросом - PullRequest
0 голосов
/ 12 июля 2011

Я пишу строку кода как часть более сложной программы, которая работает неправильно. Я новичок в VBA, поэтому, пожалуйста, потерпите меня ...

По сути, я предлагаю пользователю выбрать ячейку, которая затем присваивается переменной 'celNm'.

Затем я выполняю следующие действия:

celNm.EntireRow.Copy
celNm.EntireRow.Insert

Далее, по причинам, характерным для программы (и я предполагаю, что celNm будет находиться в той же ячейке после команды [Не в том же месте]), я хочу переместить выделение ячейки вверх, поэтому сейчас находится в ряду только что скопированного выше. Я использую следующую строку для этого:

celNm.Offset(-1, 0).Select

Это, однако, не работает.

Следующим шагом в программе будет создание списка в этом месте. Однако программа по-прежнему создает список в предыдущем месте (в выбранной ячейке). Почему это?

Ответы [ 2 ]

1 голос
/ 12 июля 2011

celNm.Offset(-1,0).Select только выбирает ячейку выше celNm.Это не меняет значение celNm.Чтобы изменить значение celNm, вам нужно следующее:

Set celNm = celNm.Offset(-1,0)

Я предполагаю, что celNm объявлен как Range.

0 голосов
/ 12 июля 2011

Полагаю, вам нужно будет работать с ActiveCell.Вот пример (вам нужно изменить «A1» на вашу переменную celNm):

Range("A1").Select
ActiveCell.Offset(-1, 0).Activate

Источник

...