vba根据单元格里字符串中的姓名,在另一个单元格里分组
时间: 2023-06-13 21:02:08 浏览: 138
在VBA中处理字符串
可以使用 VBA 中的 Dictionary 对象来实现根据姓名分组的功能。以下是一个示例代码:
```vb
Sub GroupByNames()
Dim nameDict As Object
Set nameDict = CreateObject("Scripting.Dictionary")
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Dim i As Long
For i = 1 To lastRow
Dim name As String
name = Cells(i, 1).Value
If Not nameDict.Exists(name) Then
nameDict.Add name, New Collection
End If
nameDict(name).Add Cells(i, 2).Value
Next i
Dim j As Long
j = 1
For Each name In nameDict
Dim group As Collection
Set group = nameDict(name)
For Each item In group
Cells(j, 4).Value = name
Cells(j, 5).Value = item
j = j + 1
Next item
Next name
End Sub
```
这段代码假设要将姓名列(第一列)中的字符串作为键,将相同姓名的行中的第二列数据进行分组,写入第四列和第五列中。如果需要修改列号,请自行更改代码。
阅读全文