把一列多行的单元格内容合并到一个单元格里,并统计个数
我想将一列多行的姓名组合在我框选的第一个单元格,并在每个姓名后面加一个符号“、”,最后一个姓名不加“、”,最后一个姓名加等(括号里面统计我框选的总人数)人,生成的结果像这样,例如:张三、李四、王五、王麻子等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

浙公网安备 33010602011771号