如果工作表 2 中 A 列的值不存在于工作表 1 的 A 列中,则将文本添加到工作表 1 中的该行

问题描述 投票:0回答:1

我在运行 vba 代码时遇到问题。我希望 vba 搜索工作表 1 中 A 列中的所有值,并将其与工作表 2 A 列中的值进行比较。如果该值不存在,我希望 VBA 将文本添加到工作表 1 中的 E 列到该行.

这些是我当前的代码,当我运行它时,VBA 没有弹出任何运行时错误,也没有给出结果。提前谢谢您

Sub CheckValues()

    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim valueToFind As Variant
    Dim searchRange As Range
    Dim foundCell As Range
    
    Set ws1 = ThisWorkbook.Worksheets("Sheet1")
    Set ws2 = ThisWorkbook.Worksheets("Sheet2")
    
    valueToFind = ws1.Range("A:A").Value
    
    Set searchRange = ws2.Range("A:A")
    
    ' Search for the value in the search range
    Set foundCell = searchRange.Find(what:=valueToFind, LookIn:=xlValues, lookat:=xlWhole)
    
    If foundCell Is Nothing Then
        ws1.Range("E" & foundCell.Row).Value = "Resign"
    End If
End Sub



excel vba excel-2010
1个回答
0
投票

有必要显式地迭代你想要查找的数据范围:

Set valueToFind = ws1.Range("A:A")
    
    Set searchRange = ws2.Range("A:A")
    
    For Each valueToFindItem In valueToFind
        ' Search for the value in the search range
        Set foundCell = searchRange.Find(what:=valueToFindItem, LookIn:=xlValues, lookat:=xlWhole)
    
        If foundCell Is Nothing Then
            ws1.Range("E" & ValueToFindItem.Row).Value = "Resign"
        End If
    Next valueToFindItem
© www.soinside.com 2019 - 2024. All rights reserved.