【发布时间】:2018-06-15 13:33:41
【问题描述】:
我在下面有一个工作示例代码,它将数据从一个工作簿复制到另一个工作簿。它检查“FROM”工作簿的 C 列中的值,并计算 C 列中不同的唯一值,并在第二个工作簿单元格中输出该计数/值。
到目前为止一切顺利。
我的问题是,我一直在尝试调整下面的代码以查看 F 列,以检查值是否等于特定条件,然后仅计算 C 列中在 F 列中具有该条件的项目。
Sub CopyDataFromSourceFile()
Dim wbFrom As Workbook
Dim wbTo As Workbook
Dim Listcount As String
Dim LstRw As Long, Rng As Range, List As Object
LstRw = Cells(Rows.Count, "C").End(xlUp).Row
Set List = CreateObject("Scripting.Dictionary")
For Each Rng In Range("C9:C" & LstRw)
If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
Next
'MsgBox "There are " & List.Count & " unique values"
Listcount = List.Count
wbFrom.Sheets("Sheet1").Range("B3").Copy
wbTo.Sheets("Sheet1").Range("A1").PasteSpecial
wbTo.Sheets("Sheet1").Range("D4").Value = Listcount
wbTo.Activate
End Sub
一些数据:
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30340
1900 CUMBERLAND PKWY SE ATLANTA GA 30341
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1900 CUMBERLAND PKWY SE ATLANTA GA 30339
1901 CUMBERLAND PKWY SE GA 30340
1902 CUMBERLAND PKWY SE GA 30341
注意地址和邮政编码的变化。当且仅当邮政编码等于 30339 时,我想计算 C 列中的唯一值(地址的唯一计数)。
所以上面示例的最终结果应该是 16 条记录中的 12 条。
【问题讨论】: