先看一下原始数据,A到E列为单元格数据,需要将每行的非空单元格内容合并到F列存储在一个单元格中,并且用逗号分开。

选择【开发工具】-【插入】- 选择【ActiveX控件】中的按钮。

用鼠标在excel表格中画出一个按钮。

双击该按钮,进入编辑代码模式。

粘贴下列代码:
Private Sub CommandButton1_Click()
Dim n, i, j, m
Dim arr, brr()
n = [a65535].End(xlUp).Row
ReDim brr(1 To n)
arr = Range("A1:E" & n) '其中A1:EN表示的是原始数据区域
For i = 1 To n
For j = 1 To 5 '5表示A到E列是5列
If arr(i, j) <> "" Then
brr(i) = brr(i) & "," & arr(i, j)
End If
Next j
brr(i) = Mid(brr(i), 2, 99)
Next i
[F1].Resize(n, 1) = Application.Transpose(brr) 'F1表示从F1开始输出结果
End Sub

返回excel工作表界面,点击【开发工具】-【编辑模式】按钮退出编辑模式。

点击刚才插入的命令按钮,F列就输出了我们想要的内容。

注意:
只需要更改代码中加标注的原始区域列标和行号及输出结果位置的第一个单元格就可以应用到读者自己实际的工作表中去了。
注:更多精彩教程请关注山村电脑教程栏目,山村电脑办公群:189034526欢迎你的加入