假设我有一个包含 2 个工作表的工作簿。(还有更多,但这对问题无关紧要)Sheet 1 和 Sheet 2 各包含 2 列,如下所示:
表 1:ID 空缺作业
第 2 页:…… ID
我想检查第一行第一行中的ID是否可以在第二列第二列中的任何位置找到。如果找到ID,应用程序应在第一行分别打印“是”原始相应行“空缺职位”下的搜索 ID;如果未找到 ID,则应打印“NO”。
由于我是编码新手,我真的不知道如何完成这项工作。我有一个伪代码结构和一些“真实”元素,以便更好地理解问题。
这是伪代码:
Sub Query_if_ID_matches_print_YES/NO
'Lets assume there are headers in the first line of both worksheets'
For each Cell in Sheets ("Sheet1").Range("A2:A500")
If Cell("A2").Value = Value 'Should be an integer'
Search for Value in ("Sheet2").Range("B2:B500")
If Value found in ("Sheet2").Range("B2:B500")
Print Value = "YES" in Sheets ("Sheet1").Range("B2")
Else Print Value = "NO" in Sheets ("Sheet1").Range("B2")
End If
Next Cell
End for
End Sub
我希望我以一种可以理解的方式说明了这个问题。提前感谢您的任何帮助:)
如果我正确理解了您的问题,这可能会起作用:
Sub Query()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim rng1 As Range
Dim rng2 As Range
Dim rng As Range
Dim objDic As Object
Set wks1 = ThisWorkbook.Worksheets("Sheet1")
Set wks2 = ThisWorkbook.Worksheets("Sheet2")
Set rng1 = wks1.Range("A2:A500")
Set rng2 = wks2.Range("B2:B500")
Set objDic = CreateObject("Scripting.Dictionary")
For Each rng In rng2
If objDic.Exists(rng.Value) = False Then
objDic.Add rng.Value, rng.Address
End If
Next rng
For Each rng In rng1
If objDic.Exists(rng.Value) Then
rng.Offset(0, 1).Value = "YES"
Else
rng.Offset(0, 1).Value = "NO"
End If
Next rng
Set objDic = Nothing
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句