string - Instr 函数无法检测到字符串中的单词

标签 string function excel named-ranges vba

在这个私有(private)函数中,如果满足以下要求,我想设置一个工作表:

  • 单元格 Z1 必须包含单词 Special_Sheet
  • Special_sheet定义为 Description 的单元格必须包含 turnTRN .

  • 但它没有注册单词turnTRN .我在使用 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 ,如果是这样,请不要设置它。你也必须得到 TextRange("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/

    相关文章:

    java - 检查应用程序何时启动?

    c++ - FLTK 和连接字符的问题

    c++ - 为什么 std::string 引用不能带 char*?

    matlab - 如何绘制这个?

    excel - 更改excel vba中的系列

    python - 是否有用于 Unicode 空白的 Python 常量?

    javascript - jQuery Weekcalendar setDaysToShow 函数

    php - 将表单提交给 php 文件中的特定函数

    excel - 如果循环单元是 = 到前一个,有没有办法 [VBA] 来检查每个循环?

    python - 在Python中创建一个Excel表格