Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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/2/python/327.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 VBA检查一张图纸中的值是否在另一张图纸中找到_Excel_Vba_Function - Fatal编程技术网

Excel VBA检查一张图纸中的值是否在另一张图纸中找到

Excel VBA检查一张图纸中的值是否在另一张图纸中找到,excel,vba,function,Excel,Vba,Function,我想开发一个宏来检查工作表中一列的值是否作为子字符串存在于另一个工作表的列中 所以,我想检查我的第一列的每个单元格,如果它不是空的,将它与第二页的第1列和第3列的每个单元格进行比较 为此,我使用了一个“For each”循环,然后是一个“For”循环,I从1到Rows.Count 这就是它变得棘手的地方,因为我不确定这是否是正确的方法。另外,instr()函数用于检查是否将值作为子字符串找到的参数似乎不匹配,因为我在尝试运行代码时遇到了“类型不匹配”错误 Sub test() Set Wks1

我想开发一个宏来检查工作表中一列的值是否作为子字符串存在于另一个工作表的列中

所以,我想检查我的第一列的每个单元格,如果它不是空的,将它与第二页的第1列和第3列的每个单元格进行比较

为此,我使用了一个“For each”循环,然后是一个“For”循环,I从1到Rows.Count

这就是它变得棘手的地方,因为我不确定这是否是正确的方法。另外,instr()函数用于检查是否将值作为子字符串找到的参数似乎不匹配,因为我在尝试运行代码时遇到了“类型不匹配”错误

Sub test()

Set Wks1 = Worksheets("Sheet1")
Set Wks2 = Worksheets("Sheet2")

Dim i As Long
Dim rng As Range, cell As Range

Set rng = Wks1.Range("C3:O69")

For Each cell In rng

    If Not (IsEmpty(cell.Value)) Then

        For i = 1 To Wks2.Rows.Count

            If (InStr(Cells(i, 1), cell.Value, 1) <> 0) Or (InStr(Cells(i, 3), _
                                                            cell.Value, 1) <> 0) Then
                Cells(i, 4) = "String contains substring"

            End If

        Next i

    End If

Next cell

End Sub
子测试()
设置Wks1=工作表(“表1”)
设置Wks2=工作表(“表2”)
我想我会坚持多久
变暗rng作为范围,单元格作为范围
设置rng=Wks1.范围(“C3:O69”)
对于rng中的每个单元
如果不是(IsEmpty(cell.Value)),则
对于i=1到Wks2.Rows.Count
如果(InStr(单元格(i,1),单元格值,1)0或(InStr(单元格(i,3))_
单元格。值,1)0)然后
单元格(i,4)=“字符串包含子字符串”
如果结束
接下来我
如果结束
下一个细胞
端接头
这应该行得通

Sub test()

Dim i As Long
Dim rng As Range, cell As Range
Dim lastRow as Long

Set Wks1 = Worksheets("Sheet1")
Set Wks2 = Worksheets("Sheet2")

Set rng = Wks1.Range("C3:O69")
lastRow = Wks2.Cells(Rows.Count, 1).End(xlUp).row
For Each cell In rng

    If Not (IsEmpty(cell.Value)) Then

        For i = 1 To lastRow

            With Wks2

                If (InStr(.Cells(i, 1), cell.Value) <> 0) Or (InStr(.Cells(i, 3), cell.Value) <> 0) Then

                   .Cells(i, 4) = "String contains substring"

                End If

            End With
        Next i

    End If

Next cell

End Sub
子测试()
我想我会坚持多久
变暗rng作为范围,单元格作为范围
最后一排一样长
设置Wks1=工作表(“表1”)
设置Wks2=工作表(“表2”)
设置rng=Wks1.范围(“C3:O69”)
lastRow=Wks2.Cells(Rows.Count,1).End(xlUp).row
对于rng中的每个单元
如果不是(IsEmpty(cell.Value)),则
对于i=1到最后一行
与Wks2
如果(InStr(.Cells(i,1),cell.Value)0)或(InStr(.Cells(i,3,cell.Value)0),则
.Cells(i,4)=“字符串包含子字符串”
如果结束
以
接下来我
如果结束
下一个细胞
端接头

lastrow变量的使用令人赞叹,但您忘了声明它。尝试使用
选项Explicit运行上述操作
…对,添加了声明。始终使用Option Explicit,但这次它在某个地方出了问题。