Excel VBA宏循环遍历值并对它们进行分组

时间:2017-12-06 10:32:45

标签: excel vba excel-vba

编辑以使其更清晰

假设我在B列中有一个帐号,在第一列中有非相关数据,然后我在B列中有不相关数据的行,在第I列中有一个包含帐号和其他信息的字符串我想对具有相同帐号的行进行分组,最好将它们(分组)粘贴到另一张表中。

简而言之,我需要从B列中提取帐户并将它们放入"数据库"。然后,我需要遍历工作表,在B列和第I列中查找这些值(第I列不仅包含帐户,因此包含InStr)并对包含相同帐号的行进行分组。

按组分组我的意思是将它们放在相邻的行中(顺序不相关),并用空行分隔不同的帐户。转移到另一个电子表格是一个很好的奖励,但不是强制性的。

这是一个 example数据库

在两个列中可能会多次出现相同的帐户,我需要对所有这些帐户进行分组。

这是我必须要开始的,但显然它不起作用。

Sub Group_Accounts()

Dim strConcatList As String
Dim cell As Range
Dim K As Long, r As Range
K = 1
Dim w1 As Worksheet, w2 As Worksheet
Set w1 = Sheets("Sheet1")
Set w2 = Sheets("Sheet5")

For Each r In Intersect(Range("B:B"), ActiveSheet.UsedRange)
    If r.Value <> "" Then
        strConcatList = strConcatList & r.Value & "|"
    End If
Next r


For Each r In Intersect(Range("I:I"), ActiveSheet.UsedRange)

    If InStr(strConcatList, r.Value) > 0 Then
        r.EntireRow.Copy Destination:=w2.Cells(K, 1)
        K = K + 1
    End If
Next r
End Sub

0 个答案:

没有答案