Excel VBA .Find()行为不端找不到字符串

时间:2014-06-12 19:13:13

标签: excel vba excel-vba

我在表格上有一系列值

E11:" Notional"

E12:"罢工"

E13:"优惠券"

在我的代码中,使用工作表名称

Function AddInput(name As String, strInput As String, Optional suffix = "") As String
Dim inputVal As Variant
On Error GoTo ERROR_FUNCTION
    With Worksheets(name)
        If .Cells.Find(what:=strInput, LookAt:=xlWhole,searchorder:=xlByRows).Offset(0, 1).Value <> "" Then
            inputVal = Trim(Cells.Find(what:=strInput, LookAt:=xlWhole,     searchorder:=xlByRows).Offset(0, 1).Value)
            If TypeName(inputVal) = "Date" Then inputVal = Format(inputVal, "YYYYMMDD")
        AddInput = Replace(strInput, " ", "") & "=" & inputVal & "&"
            If suffix <> "" Then AddInput = AddInput & suffix
        Else
            AddInput = ""
        End If
    End With

Exit Function
ERROR_FUNCTION:
    Debug.Print strInput & ": input not found"
    MsgBox strInput & ": input not found"
End Function

我能在Cell E12中找到什么,但不能找到E11 我做了以下事情:

1)我直接将单元格值复制到搜索功能中(没有机会指责它)。

2)我将E11中的值复制为1(如果由于某种原因它无法找到该范围等...它刚刚返回E12)。

我仍然找不到一个单元格,它适用于我通过它的每一个其他值。

有没有人遇到过这个,你是怎么解决的?

谢谢!

1 个答案:

答案 0 :(得分:0)

确保正确开始每次搜索:

Sub dural()
    Dim r As Range
    strSheetname = ActiveSheet.Name
    MyInputString = Application.InputBox(Prompt:="Enter value", Type:=2)
    With Sheets(strSheetname)
        Set r = .Cells.Find(what:=MyInputString, After:=Range("A1"))
    End With
    MsgBox r.Address(0, 0)
End Sub