Цикл от активной ячейки до первой пустой ячейки - PullRequest
0 голосов
/ 11 января 2019

Я записал и настроил код, который выбирает ячейку (F2), затем вводит информацию, которая уже находится в этой ячейке.

Sub testing()
'
' testing Macro
'
' Keyboard Shortcut: Ctrl+Shift+T
'
    ActiveCell.Select
    Application.SendKeys "{F2}"
    Application.SendKeys "{ENTER}"
    ActiveCell.Offset(1, 0).Range("A1").Select
End Sub

Мне нужно сделать это, потому что у меня есть сводка с формулами, которая ищет информацию в данных с использованием индекса соответствия, и я вставляю ее из экспорта из нашей системы учетных записей. Без выполнения этой задачи для нескольких десятков тысяч ячеек формула не распознает число.

Я пытаюсь заставить это зацикливаться из любой выбранной ячейки, когда я активирую макрос, и заканчиваю, когда он достигает пустой ячейки. Он не будет начинаться с одной и той же ячейки каждый раз, так как я хочу, чтобы это работало каждый раз на разных листах.

Я нашел код, который каждый раз начинается с определенной ячейки, а затем останавливается, но когда я настраиваю его на запуск с активной ячейки, он падает. Альтернативный код не останавливается на дне данных и продолжается до тех пор, пока не произойдет сбой Excel.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Попробуйте:

Sub refresher()
    While ActiveCell.Value <> ""
        Application.SendKeys "{F2}"
        Application.SendKeys "{ENTER}"
        DoEvents
        ActiveCell.Offset(1, 0).Select
    Wend
End Sub

Он будет перемещаться по столбцу, обновляя каждую ячейку, пока не будет найден пробел.

0 голосов
/ 11 января 2019

Попробуйте сохранить строку activecell и используйте функцию .end для поддержки так:

   dim ac as long, col as long, ec as long, i as long
   ac = activecell.row
   col = activecell.column
   ec = cells(ac,col).end(xldown).row
   for i = ac to ec
       'do something with cells(i,col)
   next i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...