Excel VBA-根据B列中的条件计算A列中的唯一/不同值

Excel VBA-根据B列中的条件计算A列中的唯一/不同值,vba,excel,Vba,Excel,下面我有一个代码示例,它将数据从一个工作簿复制到另一个工作簿。它检查“发件人”工作簿C列中的值,计算C列中不同的唯一值,并在第二个工作簿单元格中输出该计数/值 到目前为止一切都很好 我的问题是,我一直在尝试修改下面的代码,以查看F列,检查一个值是否等于一个特定的标准,然后只计算C列中在F列中具有该循环的项目 Sub CopyDataFromSourceFile() Dim wbFrom As Workbook Dim wbTo As Workbook Dim Listcount As Stri

下面我有一个代码示例,它将数据从一个工作簿复制到另一个工作簿。它检查“发件人”工作簿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条

为30339添加检查:

For Each Rng In Range("C9:C" & LstRw)
  If Rng.Offset(0,3) = 30339 Then
    If Not List.Exists(Rng.Value) Then List.Add Rng.Value, Nothing
  End If
Next

加速的额外提示:在构建字典之前,将
Range(C9:F&LstRw)
作为变量数组读入(请参见)。

非常简单。非常感谢你,这完全符合预期。谢谢你的时间和精力