【发布时间】:2020-08-04 00:41:44
【问题描述】:
我有两张表,我想比较出现在两张表第一列中的“代码”。
这是 sheet1: Sheet1
这是 sheet2:sheet2
我想遍历 sheet1 上的每个代码,并找到 sheet 2 上具有相同代码的所有行,并将行(来自 sheet2)插入新的 wb。
这就是我创建字典的方式。
iLastRow = ws1.Cells(Rows.Count, 3).End(xlUp).Row
For iRow = 18 To iLastRow
sKey = ws1.Cells(iRow, 3)
If Dict.Exists(sKey) Then
Dict(sKey) = Dict(sKey) & ";" & iRow ' matched row on sheet 1
Else
Dict(sKey) = iRow
End If
Debug.Print ((sKey))
Next
Debug.Print ("These are the values in dictionary2")
'' Dictionary broker code sheet 2
iLastRow = ws2.Cells(Rows.Count, 1).End(xlUp).Row
For iRow = 2 To iLastRow
sBROKER = ws2.Cells(iRow, 1)
If Dict.Exists(sBROKER) Then
dictBROKER(sBROKER) = dictBROKER(sKey) & ";" & iRow ' matched row on sheet 1
Else
dictBROKER(sBROKER) = iRow
End If
Debug.Print ((sBROKER))
Next
调试打印部分:debug.print
希望有人能帮助我
【问题讨论】:
-
您的代码没有在字典中输入范围(行)。它只输入行号...您不能将其用于您声明的目的...
-
嗨@FaneDuru。那你有办法解决这个问题吗?
-
如果我能理解您想要完成的工作,我可以提供帮助,但我承认我不...尝试用文字解释您的代码。否则,这对我来说看起来很奇怪。它在字典中搜索 A:A 的
ws2值,它应该做什么?替换现有值?那么,如果没有找到匹配项,dictBROKER(sBROKER) = iRow想要成为什么?为什么加载找不到匹配的行? -
“工作表 2 上具有相同代码的所有行”是什么意思?您的行保留什么“代码”?您是指 A:A 列中的“kode”吗?
-
在 sheet1 我有一列(列“C”)。在该列中,我有一些仅出现一次的值(该值是特定代码)。例如,我在单元格“c18”中有值 00010。所以 00010 只出现在单元格 c18 中,而不是稍后出现在该列中。但是在 sheet2 中 00010 可以出现多次。我想要做的是创建一个新的 wb,其中的所有值都与 sheet1 中的特定值匹配。因此,如果 c18=00010 我想从 sheet2(整行)中取出所有 00010 并插入新的 wb