在这个私有(private)函数中,如果满足以下要求,我想设置一个工作表:
Special_Sheet
Special_sheet
定义为 Description
的单元格必须包含 turn
或 TRN
. 但它没有注册单词
turn
或 TRN
.我在使用 InStr
功能不正确?Private Function getTransferSheet() As Worksheet
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
If ws.Range("Z1") <> "Special_Sheet" Then GoTo ContLoop
If InStr(1, ws.Range("Description"), "turn", vbTextCompare) Or InStr(1, ws.Range("Description"), "TRN", vbTextCompare) Then
Set getTransferSheet = ws
Exit Function
End If
ContLoop:
Next
MsgBox "Turn sheet (Last sheet) not found", vbExclamation
End
End Function
最佳答案
InStr
函数返回一个int。你想要一个 bool 值。
另外我不认为你想设置 start
,如果是这样,请不要设置它。你也必须得到 Text
的Range("Description")
尝试 :
If InStr(ws.Range("Description").Text, "turn", vbTextCompare) <> 0 Or InStr(ws.Range("Description").Text, "TRN", vbTextCompare) <>0 Then
关于string - Instr 函数无法检测到字符串中的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32647735/