VBA解决方案:我在这里做的是将所有主数字保存在一个数组中。然后,我循环遍历每个区域工作表,并检查区域内的每个数字,以查看主数组中的任何元素的最后4个是否等于该区域的数字,如果是,则使该数组中的元素等于空白。最后,我通过数组来查找任何非空白的数字(即,这些数字不存在于任何区域中),然后我输出它们。
Sub findMissingNumbers()
Dim numbers() As String
With Worksheets("Master")
For i = 2 To .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown)).Count
ReDim Preserve numbers(i)
numbers(i - 2) = .Cells(i, 1).Value
Next i
End With
For Each ws In Worksheets
With ws
If (Not ws.Name = "Master") Then
For Each cell In .Range(.Cells(2, 1), .Cells(2, 1).End(xlDown))
For i = 0 To UBound(numbers) - 1
last4master = Right(numbers(i), 4)
If (last4master = CStr(cell.Value)) Then
numbers(i) = ""
End If
Next i
Next cell
End If
End With
Next ws
missingNumbers = ""
For Each num In numbers
If (Not num = "") Then
missingNumbers = missingNumbers & num & vbNewLine
End If
Next num
MsgBox missingNumbers
End Sub
我不完全理解你的需要。你能解释一下吗? “4个全球工作簿专栏A代表主列表中800个数字中的最后4个。”这是什么“最后4”?没有意义。 – cullan
@cullan主列表包含整个800.111.1234数字。区域表只包含最后4张(XXX.XXX.1234)。所以我需要验证地区表中的每个最后4位都出现在主列表中。 – Adam
放在这里工作簿的例子和所需的结果\表截图 – bzimor