Vba 基于两个单元格的唯一列表
我正在使用以下代码提取唯一客户的列表,我想根据两列(F列和K列)的组合提取一个列表。是否有更新此代码的有效方法Vba 基于两个单元格的唯一列表,vba,excel,Vba,Excel,我正在使用以下代码提取唯一客户的列表,我想根据两列(F列和K列)的组合提取一个列表。是否有更新此代码的有效方法 就像这样,使用字典来获得独特的组合和数组比在工作表中更快 Option Explicit Sub TEST() Application.ScreenUpdating = False Dim arr(), i As Long, dict As Object Set dict = CreateObject("Scripting.Dictionary")
就像这样,使用字典来获得独特的组合和数组比在工作表中更快
Option Explicit
Sub TEST()
Application.ScreenUpdating = False
Dim arr(), i As Long, dict As Object
Set dict = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet3") '<==Change as required
arr = .Range("F1:K6").Value
For i = LBound(arr, 1) To UBound(arr, 1)
dict(arr(i, 1) & "," & arr(i, 6)) = 1
Next
End With
Dim key As Variant, rowCounter As Long
For Each key In dict.keys
rowCounter = rowCounter + 1
Worksheets("Sheet2").Cells(rowCounter + 1, 1).Resize(1, 2) = Split(key, ",") '<== Change output sheet as required
Next
Application.ScreenUpdating = True
End Sub
选项显式
子测试()
Application.ScreenUpdating=False
Dim arr(),i作为长,dict作为对象
Set dict=CreateObject(“Scripting.Dictionary”)
对于工作表(“表3”),我在表3中没有得到结果。我是否需要为CreateObject(“Scripting.Dictionary”)设置任何内容?arr中似乎没有输入值。我还注意到arr设置为一个范围(“F1:K6”),G:J列中有数据,这会影响结果的唯一性吗?您需要将范围设置为数据所在的位置。你说你想要F列和K列不?这将成为从F:K读取的数组的第1列和第6列。完整范围为A1:N100。公司在F列,工作在K列。我想提取F列和K列的唯一组合记录。但如果有重复,你会保留哪一个?我打算处理这些,但理想情况下L列中有一个数字,M列为空,如果满足这些条件,请选择H列中日期最早的记录。
Option Explicit
Sub TEST()
Application.ScreenUpdating = False
Dim arr(), i As Long, dict As Object
Set dict = CreateObject("Scripting.Dictionary")
With Worksheets("Sheet3") '<==Change as required
arr = .Range("F1:K6").Value
For i = LBound(arr, 1) To UBound(arr, 1)
dict(arr(i, 1) & "," & arr(i, 6)) = 1
Next
End With
Dim key As Variant, rowCounter As Long
For Each key In dict.keys
rowCounter = rowCounter + 1
Worksheets("Sheet2").Cells(rowCounter + 1, 1).Resize(1, 2) = Split(key, ",") '<== Change output sheet as required
Next
Application.ScreenUpdating = True
End Sub