文章仅做记录,方便下次使用
目录
1、需求
按大写字母将字段分列,实现下图结果
![](https://img.haomeiwen.com/i2693156/070f452cff71d1ff.png)
2、实现方法
1)编写VBA代码,自定义函数
2)使用函数,实现功能:遇见大写字母则前面空格
3)按空格分开
正文
一、编写VBA代码,自定义函数 SplitWords
1、按住 ALT + F11 键打开 Microsoft Visual Basic应用程序 窗口
![](https://img.haomeiwen.com/i2693156/199396d858e146fa.png)
2、点击右键 插入 > 模块
![](https://img.haomeiwen.com/i2693156/a653035b3f9386d6.png)
3、将以下代码粘贴到 模块 窗口
Function SplitWords(ByVal Str As String) As String
'updateby Extendoffice 20151128
Dim I As Integer
SplitWords = Left(Str, 1)
For I = 2 To Len(Trim(Str))
If (Asc(Mid(Str, I, 1)) > 64) And _
(Asc(Mid(Str, I, 1)) < 91) And _
(Mid(Str, I - 1, 1) <> " ") Then _
SplitWords = SplitWords & " "
SplitWords = SplitWords & Mid(Str, I, 1)
Next
End Function
![](https://img.haomeiwen.com/i2693156/f810ed23225458f6.png)
4、Ctrl + s 保存并关闭VBA编写界面,返回工作表
二、使用函数,实现功能:遇见大写字母则前面空格
1、输入公式: = splitwords(A2)
![](https://img.haomeiwen.com/i2693156/ba435732b3655725.png)
2、然后将填充手柄向下拖动到要应用此公式的单元格上,并且在每个大写字母
之前已插入空格
以分隔单元格内容
![](https://img.haomeiwen.com/i2693156/8a00b455af2d2df7.png)
3、将这些公式单元格复制并粘贴为值
![](https://img.haomeiwen.com/i2693156/d9524a2fc65f9cc3.png)
三、分列
选中B列,并按空格分列
![](https://img.haomeiwen.com/i2693156/9fac9b429d4cbb03.png)
![](https://img.haomeiwen.com/i2693156/175e9804352081af.png)
完成结果如下
![](https://img.haomeiwen.com/i2693156/3652b77b33c431b7.png)
四、备注
参考文章如下:https://zh-cn.extendoffice.com/documents/excel/3336-excel-split-text-by-capital-letter.html
上面需求是按大写字母分列,如果需求是在大写字母前面加下划线_,实现方法如下:
1、只需要修改最后一步操作分列
2、将分列这一步的操作更改为替换,将空格替换为下划线
![](https://img.haomeiwen.com/i2693156/1412d02f6ab7900b.png)
网友评论