把一列多行的单元格内容合并到一个单元格里,并统计个数

我想将一列多行的姓名组合在我框选的第一个单元格,并在每个姓名后面加一个符号“、”,最后一个姓名不加“、”,最后一个姓名加等(括号里面统计我框选的总人数)人,生成的结果像这样,例如:张三、李四、王五、王麻子等4人。vba代码如下

Sub 组合姓名()
Dim selectedRange As Range
Dim cell As Range
Dim names() As String
Dim count As Long
Dim result As String

‘ 获取用户选择的区域
Set selectedRange = Application.Selection

‘ 初始化数组和计数器
count = 0
ReDim names(0) ‘ 初始数组大小为1

‘ 遍历选区收集非空姓名
For Each cell In selectedRange
If Trim(cell.Value) <> “” Then ‘ 排除空白和纯空格单元格
If count > 0 Then ReDim Preserve names(count)
names(count) = Trim(cell.Value)
count = count + 1
End If
Next cell

‘ 无有效数据时退出
If count = 0 Then
MsgBox “未找到有效姓名!”, vbExclamation
Exit Sub
End If

‘ 构建结果字符串
If count = 1 Then
result = names(0) & “等” & count & “人”
Else
result = Join(names, “、”) & “等” & count & “人”
End If

‘ 将结果写入选区首单元格
On Error Resume Next ‘ 防止选择整列时溢出
selectedRange.Cells(1).Value = result
On Error GoTo 0

‘ 清除首单元格之后的姓名
Dim clearRange As Range
Set clearRange = selectedRange.Cells(2).Resize(selectedRange.Rows.count – 1, selectedRange.Columns.count)
clearRange.ClearContents
End Sub