Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
类型不匹配错误VBA循环浏览工作表_Vba_Excel - Fatal编程技术网

类型不匹配错误VBA循环浏览工作表

类型不匹配错误VBA循环浏览工作表,vba,excel,Vba,Excel,我一直收到一个类型不匹配错误,并尝试更改了几次类型。我只是试着遍历每个工作表和指定的区域,看看该区域的每个单元格中是否都存在该单词 Sub CheckWord() Dim arrVar As Variant Dim ws As Worksheet Dim strCheck As Range Set arrVar = ActiveWorkbook.Worksheets 'MsgBox (arrVar) For Each ws In arrVar If ws.Range("C9:G20

我一直收到一个类型不匹配错误,并尝试更改了几次类型。我只是试着遍历每个工作表和指定的区域,看看该区域的每个单元格中是否都存在该单词

Sub CheckWord()


Dim arrVar As Variant
Dim ws As Worksheet
Dim strCheck As Range

Set arrVar = ActiveWorkbook.Worksheets
'MsgBox (arrVar)

For Each ws In arrVar
   If ws.Range("C9:G20").Value = "Word" Then
    MsgBox (True)
   End If
Next ws

End Sub

您无法获取
ws.Range(“C9:G20”)
值,并将其与一个字符串进行比较。您选择了多个单元格。如果要在其中任何一个单元格包含“Word”或所有单元格都包含“Word”时返回
True
,则需要对其进行迭代

这是一个如何至少返回一次您的范围是否包含“Word”的示例

Function CheckWord()
    Dim arrVar As Variant
    Dim ws As Worksheet

    Set arrVar = ActiveWorkbook.Worksheets

    For Each ws In arrVar
       Dim c
       For Each c In ws.Range("C9:G20").Cells
            If c = "Word" Then
                CheckWord = True
                Exit Function
            End If
       Next c
    Next ws
End Function

您无法获取
ws.Range(“C9:G20”)
值,并将其与一个字符串进行比较。您选择了多个单元格。如果要在其中任何一个单元格包含“Word”或所有单元格都包含“Word”时返回
True
,则需要对其进行迭代

这是一个如何至少返回一次您的范围是否包含“Word”的示例

Function CheckWord()
    Dim arrVar As Variant
    Dim ws As Worksheet

    Set arrVar = ActiveWorkbook.Worksheets

    For Each ws In arrVar
       Dim c
       For Each c In ws.Range("C9:G20").Cells
            If c = "Word" Then
                CheckWord = True
                Exit Function
            End If
       Next c
    Next ws
End Function

如果有一个包含许多列的
范围
,它将创建一个数组。 这样考虑阵列:

Sub CheckWord()


Dim arrVar As Variant
Dim ws As Worksheet
Dim strCheck As Range

Set arrVar = ActiveWorkbook.Worksheets
'MsgBox (arrVar)

For Each ws In arrVar
   For each col in ws.Range("C9:G20").Cells
      if col.Value = "Word" Then
         MsgBox (True)
      end if
   End If
Next ws

End Sub

如果有一个包含许多列的
范围
,它将创建一个数组。 这样考虑阵列:

Sub CheckWord()


Dim arrVar As Variant
Dim ws As Worksheet
Dim strCheck As Range

Set arrVar = ActiveWorkbook.Worksheets
'MsgBox (arrVar)

For Each ws In arrVar
   For each col in ws.Range("C9:G20").Cells
      if col.Value = "Word" Then
         MsgBox (True)
      end if
   End If
Next ws

End Sub

ws.Range(“C9:G20”)
返回包含数组的
变量。您无法将其与
字符串
进行比较。范围(“C9:G20”)
返回包含数组的
变量。您不能将其与
字符串进行比较。您不能对值进行迭代,然后对值调用.value。您需要删除其中一个Good call@Brad,这是Cells集合,而不是Value属性。您不能迭代这些值,然后对该值调用.Value。您需要删除其中一个Good call@Brad这是Cells集合,而不是Value属性。@Oloo:您通过了吗?是的,我通过了,我一看到解释就明白了。谢谢不客气。然后把你采纳的答案标记为solution@Oluo.当前位置你能给帮助你的人提供适当的反馈,真是太好了you@OluO.当前位置你通过了吗?是的,我通过了,一旦我看到解释,我就明白了。谢谢不客气。然后把你采纳的答案标记为solution@Oluo.字体你能给帮助你的人提供适当的反馈,真是太好了