Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Sheet2的类型不匹配错误。范围字符串搜索_Excel_Search_Vba - Fatal编程技术网

Excel Sheet2的类型不匹配错误。范围字符串搜索

Excel Sheet2的类型不匹配错误。范围字符串搜索,excel,search,vba,Excel,Search,Vba,按照我前面的问题 ,我能够在VBA for excel中突出显示单元格。“我的VBA代码”搜索工作表以查找特定单词,并高亮显示包含这些单词的单元格 我的问题是,当我尝试创建一个要搜索的列表时,会出现类型不匹配错误。因此,我的工作表2中要查询的值的“数组”列表标记了一个错误 第2页清单: 如果我硬编码我的搜索字符串,它仍然可以工作 因此,我如何使我的数组列表在我的以下代码中工作,而不是在(InStr(item_sum,“rememy”)中的“rememy”/“Internet..etc”) 我的

按照我前面的问题 ,我能够在VBA for excel中突出显示单元格。“我的VBA代码”搜索工作表以查找特定单词,并高亮显示包含这些单词的单元格

我的问题是,当我尝试创建一个要搜索的列表时,会出现
类型不匹配错误
。因此,我的工作表2中要查询的值的“数组”列表标记了一个错误

第2页清单:

如果我硬编码我的搜索字符串,它仍然可以工作

因此,我如何使我的数组列表在我的以下代码中工作,而不是在
(InStr(item_sum,“rememy”)
中的
“rememy”/“Internet..etc”

我的代码中的硬编码字符串如下所示:

Private Sub CommandButton1_Click()

'Query = Sheet2.Range("A:A")

Do
DoEvents

row_num = row_num + 1
Sheet1.Range("B" & row_num & ":E" & row_num).Interior.Color = xlNone

    item_sum = Sheet1.Range("B" & row_num)
    item_note = Sheet1.Range("C" & row_num)
    item_group = Sheet1.Range("E" & row_num)

        If (InStr(item_sum, "Remedy")) Then
            Sheet1.Range("B" & row_num).Interior.Color = RGB(255, 255, 0)
        End If

        If (InStr(item_sum, "Internet") Or InStr(item_sum, "internet")) Then
            Sheet1.Range("B" & row_num).Interior.Color = RGB(255, 255, 0)
        End If

        If InStr(item_note, "Remedy") Then
            Sheet1.Range("C" & row_num).Interior.Color = RGB(255, 255, 0)
        Else
            Sheet1.Range("C" & row_num).Interior.Color = xlNone
        End If

        If InStr(item_group, "Remedy") Then
            Sheet1.Range("D" & row_num).Interior.Color = RGB(255, 255, 0)
        End If

Loop Until item_sum = ""


End Sub
正如您所见,我尝试了以下行:
Query=Sheet2.Range(“A:A”)
并像这样搜索:
If(InStr(item\u sum,Query))然后
,但它不起作用

更新:

所以我一直在玩动态名称。到目前为止,我从Sheet2的列表中获得了要显示在MsgBox中以进行调试的字符串。然而,当它运行时,它将突出显示B2单元,该单元显示“补救措施”,但没有其他内容。但是,我可以看出我的
UCase(Sheet2.Range(“A”&Count).Value)
显示列表中的每一个。还是只有B2单元的颜色?当我逐行解码时,它似乎只记录Sheet2列表中的最后一个字符串搜索,即“补救”,因此只突出显示B2

Private Sub CommandButton1_Click()

row_num = 1

Dim query_list As Range
Set query_list = Sheet2.Range("A:A")

'MsgBox "Number of Rows are " & WorksheetFunction.CountA(query_list)
list_count = WorksheetFunction.CountA(query_list)

row_num = row_num + 1
Sheet1.Range("B" & row_num & ":E" & row_num).Interior.Color = xlNone
Sheet1.Range("I" & row_num).Value = ""

item_sum = Sheet1.Range("B" & row_num)
item_note = Sheet1.Range("C" & row_num)
item_group = Sheet1.Range("E" & row_num)

For Each list In query_list

Count = Count + 1
If (Count <= list_count) Then
        'ALL QUERIES FOR COLUMN B

        MsgBox UCase(Sheet2.Range("A" & Count).Value)
        If (InStr(UCase(item_sum), UCase(Sheet2.Range("A" & Count).Value))) Then
            Sheet1.Range("B" & row_num).Interior.Color = RGB(255, 255, 0)
            Sheet1.Range("I" & row_num).Value = "Yes"
        End If
End If

Next

Private子命令按钮1\u单击()
行数=1
Dim查询列表作为范围
设置查询列表=Sheet2.Range(“A:A”)
“MsgBox”行数为“&工作表函数.CountA(查询列表)
列表计数=工作表函数.CountA(查询列表)
行数=行数+1
Sheet1.范围(“B”和行数&“:E”和行数)。Interior.Color=xlNone
表1.范围(“I”和行数)。值=“”
项目总数=表1.范围(“B”和行数)
项目注释=表1.范围(“C”和行数)
项目组=表1.范围(“E”和行数)
对于查询列表中的每个列表
计数=计数+1
如果(计数算出了

我需要做的是获取Sheet2中的行计数,并使用它更新第
行中的字符串值(InStr(UCase(item_group)、UCase(Sheet2.Range(“A”&count.value))

Private子命令按钮1\u单击()
行数=1
Dim查询列表作为范围
设置查询列表=Sheet2.Range(“A:A”)
将总行调整为整数
总计行数=工作表函数.CountA(查询列表)
MsgBox总行数
“MsgBox”行数为“&工作表函数.CountA(查询列表)
Dim list_计数为整数
列表计数=工作表函数.CountA(查询列表)
做
多芬特
行数=行数+1
Sheet1.范围(“B”和行数&“:E”和行数)。Interior.Color=xlNone
表1.范围(“I”和行数)。值=“”
“MsgBox行数”
项目总数=表1.范围(“B”和行数)
项目注释=表1.范围(“C”和行数)
项目组=表1.范围(“E”和行数)
计数=1
而(Count算出了

我需要做的是获取Sheet2中的行计数,并使用它更新第
行中的字符串值(InStr(UCase(item_group)、UCase(Sheet2.Range(“A”&count.value))

Private子命令按钮1\u单击()
行数=1
Dim查询列表作为范围
设置查询列表=Sheet2.Range(“A:A”)
将总行调整为整数
总计行数=工作表函数.CountA(查询列表)
MsgBox总行数
“MsgBox”行数为“&工作表函数.CountA(查询列表)
Dim list_计数为整数
列表计数=工作表函数.CountA(查询列表)
做
多芬特
行数=行数+1
Sheet1.范围(“B”和行数&“:E”和行数)。Interior.Color=xlNone
表1.范围(“I”和行数)。值=“”
“MsgBox行数”
项目总数=表1.范围(“B”和行数)
项目注释=表1.范围(“C”和行数)
项目组=表1.范围(“E”和行数)
计数=1
而
Private Sub CommandButton1_Click()

row_num = 1

Dim query_list As Range
Set query_list = Sheet2.Range("A:A")

Dim total_rows As Integer
total_rows = WorksheetFunction.CountA(query_list)
MsgBox total_rows

'MsgBox "Number of Rows are " & WorksheetFunction.CountA(query_list)
Dim list_count As Integer
list_count = WorksheetFunction.CountA(query_list)

Do
DoEvents

            row_num = row_num + 1
            Sheet1.Range("B" & row_num & ":E" & row_num).Interior.Color = xlNone
            Sheet1.Range("I" & row_num).Value = ""

            'MsgBox row_num
            item_sum = Sheet1.Range("B" & row_num)
            item_note = Sheet1.Range("C" & row_num)
            item_group = Sheet1.Range("E" & row_num)
            Count = 1

            While (Count <= list_count)
            'MsgBox Count
            'MsgBox item_sum
                If (InStr(UCase(item_sum), UCase(Sheet2.Range("A" & Count).Value))) Then
                'MsgBox Count
                'MsgBox UCase(Sheet2.Range("A" & Count).Value)
                    Sheet1.Range("B" & row_num).Interior.Color = RGB(255, 255, 0)
                    Sheet1.Range("I" & row_num).Value = "Yes"

                End If

                Count = Count + 1
                'MsgBox Count

            Wend

            Count = 1
            While (Count <= list_count)
            'MsgBox Count
            'MsgBox item_sum
                If (InStr(UCase(item_note), UCase(Sheet2.Range("A" & Count).Value))) Then
                'MsgBox Count
                'MsgBox UCase(Sheet2.Range("A" & Count).Value)
                    Sheet1.Range("C" & row_num).Interior.Color = RGB(255, 255, 0)
                    Sheet1.Range("I" & row_num).Value = "Yes"

                End If

                Count = Count + 1
                'MsgBox Count

            Wend

            Count = 1

            While (Count <= list_count)
            'MsgBox Count
            'MsgBox item_sum
                If (InStr(UCase(item_group), UCase(Sheet2.Range("A" & Count).Value))) Then
                'MsgBox Count
                'MsgBox UCase(Sheet2.Range("A" & Count).Value)
                    Sheet1.Range("E" & row_num).Interior.Color = RGB(255, 255, 0)
                    Sheet1.Range("I" & row_num).Value = "Yes"

                End If

                Count = Count + 1
                'MsgBox Count

            Wend

Loop Until item_sum = ""