我在同一个工作簿中有关于 Worksheets("North").Range("B3:B500") 的数据和关于 Worksheets("Auto").Range("A2:A22") 的数据。 如何检查第一个 Range 中的每个 Cell 是否在第二个 Range 上找到,如果存在,将运行某些代码 (Offset )?
此行中以下代码的问题: If Cell.value = Worksheets("Auto").Range("A2:A22") 然后
Sub Check_Range()
Dim WorkOrder As Range
Dim Closed_Data As Range
Dim Cell As Object
Set WorkOrder = Worksheets("North").Range("B3:B500")
Set Closed_Data = Worksheets("Auto").Range("A2:A22")
For Each Cell In WorkOrder
If Cell.value = Worksheets("Auto").Range("A2:A22") Then
Cell.Offset(, 6).value = "Close"
Cell.Offset(, 7).value = Now
End If
Next Cell
End Sub
答案 0 :(得分:1)
无法将一个单元格的值与一个范围进行比较。试试这个代码:
Sub Check_Range()
Dim WorkOrder As Range
Dim Closed_Data As Range
Dim Cell As Object
Set WorkOrder = Worksheets("North").Range("B3:B500")
Set Closed_Data = Worksheets("Auto").Range("A2:A22")
On Error Resume Next
For Each Cell In WorkOrder
With Cell
WorksheetFunction.Match .Value, Closed_Data, 0 'value search
If Err.Number = 0 Then ' if there is no error, then the value was found
.Offset(, 6).Value = "Close"
.Offset(, 7).Value = Now
End If
Err.Clear
End With
Next Cell
On Error GoTo 0
End Sub