查找范围中的下一个值

时间:2013-10-21 12:35:08

标签: excel vba excel-vba

我希望用户激活“下一站点”按钮,该按钮可以将单元格的值提升到另一张纸张中定义的单元格区域。每次按下按钮时,它应该返回范围

中下一个项目的值

到目前为止,我有:

Sub NextSite()
 Set EXCEPTION = Sheets("EXCEPTION")
 Set CONTROL = Sheets("CONTROL")
 Dim rCell As Range
 Dim rRng As Range

 CurrentVal = EXCEPTION.Range("B16")

 Set rRng = CONTROL.Range("B9:B72")

 For Each rCell In rRng.Cells
    If CurrentVal = rCell.Value Then
        GoTo NextCell
        Else
        ActiveCell.Formula = CONTROL.Range(rCell.Address)
        Exit For
    End If
NextCell:
Next rCell

End Sub

虽然我认为我在这里有一个想法的开始,但我无法完全了解整个范围。

我还希望有一个单独的代码,如果有人可以为此提供建议,则会在列表中找到上一个站点。

1 个答案:

答案 0 :(得分:0)

有趣的问题..在这个例子中,我们想要从名为 rLook 的范围中顺序采样。范围是一组不相交的单元格(最坏的情况),但宏可以在任何范围内工作。我们使用静态变量来索引索引:

Dim Kounter As Long
Sub sequentialSamples()
    Dim rLook As Range, r As Range
    Set rLook = Sheets("Sheet2").Range("A1,B9,C13,F1,J66")
    If Kounter = 0 Or Kounter > rLook.Count Then
        Kounter = 1
    End If
    j = 0
    For Each r In rLook
        j = j + 1
        If j = Kounter Then
            MsgBox Kounter & vbCrLf & r.Address & vbCrLf & r.Value
            Kounter = Kounter + 1
            Exit Sub
        End If
    Next r
End Sub