我正在编写一个函数,在工作表中查找字符串,并使用找到的短语的位置设置范围变量。当我尝试检查.find是否返回一个值时,我收到一个错误:
Public Function ExceptionSearch(ByVal eString As String) As Boolean
Dim pRange As Range
Dim bDT As Boolean
Dim bSVR As Boolean
Dim bMB As Boolean
Workbooks("test.xlsx").Worksheets("worksheet").Activate
With Worksheets("worksheet").Range("a1:a5000")
Set pRange = .Find(eString, LookIn:=xlValues)
If pRange <> "" Then
bDT = True
Else
bDT = False
End If
End With
ExceptionSearch = bDT
End Function
我一直收到错误“运行时错误'91':对象变量或没有设置块变量”
这可能是一个简单的问题,但我无法理解。
答案 0 :(得分:2)
在检查空白字符串的值之前,您应该检查以确保pRange存在。
Set pRange = .Find(eString, LookIn:=xlValues)
If Not pRange Is Nothing Then
' string check here
End If
答案 1 :(得分:1)
由于.Find返回一个对象,如果找不到该值,则等于Nothing
。将其更改为:
If pRange Is Nothing Then
bDT = True
Else
bDT = False
End If
或者真的,您可以完全消除if/else
阻止,只需ExceptionSearch=pRange Is Nothing
pRange Is Nothing
,因为Boolean
无论如何都会带回{{1}}