从活动单元格循环到第一个空单元格

时间:2019-01-11 13:30:09

标签: excel vba

我已经记录并调整了一个代码,该代码选择一个单元格(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 :(得分:0)

尝试保存活动单元格行,并使用.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

答案 1 :(得分:0)

尝试一下:

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

它将前进到一列,刷新每个单元格,直到找到空白为止。