发布网友 发布时间:2022-04-30 17:58
共4个回答
热心网友 时间:2022-06-29 23:51
你这个问题,公式是不好解决的。用VBA吧。如下图:
首先说明一点,金山WPS个人免费版是不支持VBA代码的哦。
按Alt+F11打开VBA编辑器,
插入---模块---然后双击模块,
在右侧输入或粘贴代码,
按那个三角形的小按钮可以运行代码。
代码如下:
Sub 拆分()
Dim arr, brr, crr, i&, irow&
arr = Range("A2:C6") '把数据源赋值给数组arr
For i = LBound(arr) To UBound(arr)
brr = Split(arr(i, 2), vbLf) '把姓名按换行符进行分隔后赋值给数组brr
crr = Split(arr(i, 3), vbLf) '把电话按换行符进行分隔后赋值给数组crr
irow = Range("E" & Rows.Count).End(3).Row + 1 '获取E列的最大行号,并+1
Range("E" & irow).Resize(UBound(brr) + 1, 1) = arr(i, 1) '向E列写入街道
Range("F" & irow).Resize(UBound(brr) + 1, 1) = Application.Transpose(brr) '向F列写入姓名
Range("G" & irow).Resize(UBound(brr) + 1, 1) = Application.Transpose(crr) '向G列写入电话
Next
MsgBox "处理完毕!", , "提示"
End Sub
热心网友 时间:2022-06-29 23:51
方法两种:
热心网友 时间:2022-06-29 23:52
可以使用python或者VBA来写批量处理程序,花几个小时写一份代码,就可以替代几天的分列操作。尤其是针对你这样有几千个文件的情况。热心网友 时间:2022-06-29 23:52
将姓名和电话两列复制到WORD,选择性粘贴。然后Word里复制,再粘贴回EXCEL追问还有别的方法吗,刚才试了不太行,有的都错行了