Excel VBA识别范围内的数字

Excel VBA识别范围内的数字,excel,vba,range,Excel,Vba,Range,我相信这是一个简单的问题,但似乎无法在WWW上找到任何明确的信息 我需要我的代码来识别列中1到9之间的任何数字,以便它在该范围内抛出错误,目前我只能让它使用一个数字 Public Sub ErrorCheck() Dim FindString As String Dim Rng As Range FindString = "" If VBA.Trim(FindString) <> "" Then With Sheets("Scoring").Range("S:S") Set

我相信这是一个简单的问题,但似乎无法在WWW上找到任何明确的信息

我需要我的代码来识别列中1到9之间的任何数字,以便它在该范围内抛出错误,目前我只能让它使用一个数字

Public Sub ErrorCheck()
Dim FindString As String
Dim Rng As Range
FindString = ""
If VBA.Trim(FindString) <> "" Then
With Sheets("Scoring").Range("S:S")
    Set Rng = .Find(What:=FindString, _
                    After:=.Cells(.Cells.Count), _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
    If Not Rng Is Nothing Then
        MsgBox "Error", True
    Else

    End If
End With
End If
End Sub
Public子错误检查()
作为字符串的暗FindString
变暗Rng As范围
FindString=“”
如果VBA.Trim(FindString)“,则
带图纸(“划线”)。范围(“S:S”)
Set Rng=.Find(What:=FindString_
之后:=.Cells(.Cells.Count)_
LookIn:=xlValues_
看:=xlother_
搜索顺序:=xlByRows_
SearchDirection:=xlNext_
匹配案例:=假)
如果不是,那么Rng什么都不是
MsgBox“错误”,为真
其他的
如果结束
以
如果结束
端接头

谢谢你的帮助

您可以针对所有需要的值迭代执行代码。例如:

Public Sub ErrorCheck()
    Dim FindString As String
    Dim Rng As Range
    Dim startVal As Integer, endVal As Integer

    startVal = 1
    endVal = 9

    For i = startVal To endVal
        FindString = CStr(i)
        With Sheets("Scoring").Range("S:S")
            Set Rng = .Find(What:=FindString, _
                    After:=.Cells(.Cells.Count), _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
            If Not Rng Is Nothing Then
                MsgBox "Error", True
                Exit For
            Else

            End If
        End With
    Next i

End Sub

您可以针对所有需要的值迭代执行代码。例如:

Public Sub ErrorCheck()
    Dim FindString As String
    Dim Rng As Range
    Dim startVal As Integer, endVal As Integer

    startVal = 1
    endVal = 9

    For i = startVal To endVal
        FindString = CStr(i)
        With Sheets("Scoring").Range("S:S")
            Set Rng = .Find(What:=FindString, _
                    After:=.Cells(.Cells.Count), _
                    LookIn:=xlValues, _
                    LookAt:=xlWhole, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlNext, _
                    MatchCase:=False)
            If Not Rng Is Nothing Then
                MsgBox "Error", True
                Exit For
            Else

            End If
        End With
    Next i

End Sub

感谢varocarbas的快速响应!我刚刚启动了这个程序,我想我缺少了代码中“for I=startVal to endVal”部分的库。你知道这需要什么图书馆吗?再次感谢!图书馆?这是执行startVal(本例中为1)和endVal(本例中为9)操作的典型循环。增加的值(i)被转换为字符串,并作为代码的输入。也就是说,使用10个不同的输入执行10次(如果在结束之前找到匹配项,则停止尝试)。这就是你想要的,不是吗?。。。如果你指的是我从哪里得到的,我在看到你的问题后马上创建了它。或者,如果您想执行for…下一步,您不需要任何东西,它是VBA基本命令之一。这听起来很正确…但当我运行代码“找不到项目或库”时,它会抛出一个编译错误再次感谢!?!您是否在Excel中使用VBA?上面的代码中没有任何东西需要库。至少我没写什么。也许,当你复制它时,你做错了什么(老实说,不确定是什么),再试一次。如果您的原始代码运行良好,那么这个代码也应该运行良好,因为我没有包含任何奇怪的内容。与其复制它,不如编辑代码,看看VBA是如何识别的(用小号大写字母书写,它会自动将其设置为大写字母)。关闭我的excel会话并重新启动…工作正常。非常感谢!;-)感谢varocarbas的快速响应!我刚刚启动了这个程序,我想我缺少了代码中“for I=startVal to endVal”部分的库。你知道这需要什么图书馆吗?再次感谢!图书馆?这是执行startVal(本例中为1)和endVal(本例中为9)操作的典型循环。增加的值(i)被转换为字符串,并作为代码的输入。也就是说,使用10个不同的输入执行10次(如果在结束之前找到匹配项,则停止尝试)。这就是你想要的,不是吗?。。。如果你指的是我从哪里得到的,我在看到你的问题后马上创建了它。或者,如果您想执行for…下一步,您不需要任何东西,它是VBA基本命令之一。这听起来很正确…但当我运行代码“找不到项目或库”时,它会抛出一个编译错误再次感谢!?!您是否在Excel中使用VBA?上面的代码中没有任何东西需要库。至少我没写什么。也许,当你复制它时,你做错了什么(老实说,不确定是什么),再试一次。如果您的原始代码运行良好,那么这个代码也应该运行良好,因为我没有包含任何奇怪的内容。与其复制它,不如编辑代码,看看VBA是如何识别的(用小号大写字母书写,它会自动将其设置为大写字母)。关闭我的excel会话并重新启动…工作正常。非常感谢!;-)