vba中的if语句判断两个字符串相等总是判断不对。我需要把sheet1的一个range的值确定它在sheet2中的位置?

Private Sub CommandButton1_Click()
Call test1
End Sub

Public Sub test1()
Dim a As String
a = Sheet1.Range("C3").Value '获取一个range单元格的值
MsgBox (sear(a))
End Sub

Public Function sear(a As String) As Integer '返回在sheet2中的位置
Dim b As String
Dim i As Integer
For i = 1 To 97 Step 2
b = Sheet2.Range("a" & i).Value
If a = b Then ‘只一步字符串判断总是不对’
Exit For
End If
Next
sear = i
End Function

干脆我重新给你写个吧。

Private Sub CommandButton1_Click()

    If Sheet1.Range("C3").Value = "" Then

        MsgBox "Sheet1的C3不能为空", 16

    Else

        Dim rg As Range, Sear As Long

        Set rg = Range("A1:A97").Find(Sheet1.Range("C3").Value, Range("A97"), , xlWhole)

        If Not rg Is Nothing Then '如果能查找到

            If rg.Row Mod 2 = 1 Then '如果该单元格的行号是奇数

                Sear = rg.Row '那么把行号赋值给Sear

            End If

        End If

        If Sear = 0 Then

            MsgBox "没有符合的结果", 16

        Else

            MsgBox "已找到,行号为 " & Sear, 64

        End If

    End If

End Sub

温馨提示:答案为网友推荐,仅供参考
第1个回答  2022-07-10
我的可以找到啊,如果没有匹配值,它返回的最大值,不足也是,比如这个没找到返回99,你检查一下数据是否有空格。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网