乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel拆分单元格-职场技术|分割EXCEL单元格中的文字小BUG解决方案

excel拆分单元格-职场技术|分割EXCEL单元格中的文字小BUG解决方案

作者:乔山办公网日期:

返回目录:excel表格制作

通过我们的上一篇文章,大家已经能够通过“find”、“left”、“len”、“right”这四个函数运用,将下图中的原始数据拆分,达到分别处理的目的(前文链接:职场技术|两步教你如何分割EXCEL单元格中的文字)。有热心网友指出,如果通过EXCEL自带的“分列”功能,也能够达到拆分的目的,我们将在今后的文章中详细介绍EXCEL的分列功能。




BUG的存在


但是无论是在我们前文讲到的函数方法,以及今后会介绍的分列功能,都需要原始数据中有分隔符号的存在,例如上面的例子我们则是用下划线(“_”)来分隔人名及数据。但是如果没有分隔符,又怎么样实现拆分的功能呢?我们将在本文介绍实现方法。


本文的原始例子如下:



在众多的EXCEL内置函数中的确未找到能逐一分析字符类型的函数,因此不能够通过EXCEL内置函数添加分隔符。这里采用EXCEL的VBA自定义两个函数,函数名分别为AddSeparatorTextNum和AddSeparatorNumText。前者为人名在数字前面用的函数,后者为数字在人名前面用的函数。本例的逻辑采用找到字符与数字交接处为出发点,增加分隔符。


各位不必看懂我以下的VBA程序,若有兴趣,我们将在今后一步一步介绍VBA的学习方法,你会发现,VBA掌握起来是十分简单的,并且能够快速的编写自己想要的程序,事半功倍。


现在仅需要按以下步骤操作,便能完成增加分隔符的操作了。


步骤一:


打开存在原始数据的EXCEL文件。



步骤二:


同时按下ALT+F11,打开VBA编辑器,界面如下。



步骤三:(这一步的操作非常重要)


将以下代码按以下步骤拷贝进EXCEL VBA,操作如下:


Function AddSeparatorTextNum(Cell As Range) As String


Dim Length As Integer, BaseText As String, i As Integer, temple As Integer


BaseText = Trim(Cell.Value)


Length = Len(BaseText)


For i = 1 To Length


If IsNumeric(Mid(BaseText, i, 1)) = True Then


temple = i


Exit For


End If


Next


AddSeparatorTextNum = Left(BaseText, temple - 1) & "-" & Right(BaseText, Len(BaseText) - temple + 1)


End Function


Function AddSeparatorNumText(Cell As Range) As String


Dim Length As Integer, BaseText As String, i As Integer, temple As Integer


BaseText = Trim(Cell.Value)


Length = Len(BaseText)


For i = 1 To Length


If IsNumeric(Mid(BaseText, i, 1)) = False Then


temple = i


Exit For


End If


Next


AddSeparatorNumText = Left(BaseText, temple - 1) & "-" & Right(BaseText, Len(BaseText) - temple + 1)


End Function



步骤四:


关闭EXCEL VBA窗口,现在新增加一列单元格,名为“增加分隔符的数据”。



步骤五:


就如同使用EXCEL内置函数(例如上文提到的left函数)一样,在B3单元格输入“=AddSeparatorTextNum(A3)”,此处需要注意,若数字在人名前面,需要输入“=AddSeparatorNumText(A3)”,根据本例特点,采用前一个函数。



步骤六:


好了,现在就为原始的数据添加上了分隔符,就可以按照我们的上一篇文章介绍的方法来分割数据了。



步骤七:


因为嵌入了程序,本表格文件的保存需要另存为.XLSM格式,以便下次打开还能够使用。



步骤八:


因为EXCEL的安全保护,在每次打开带有程序的EXCEL文档,即.XLSM格式文档时,系统都会提示是否启用宏,点击启用就可以了。



我们将在今后逐步介绍VBA的快速入门技巧,欢迎大家关注。


相关阅读

  • excel怎么求和-Excel跨工作表求和的方法

  • 乔山办公网excel表格制作
  • 在同一个工作表,我们求和通常用SUM、SUMIF或SUMIFS函数,但如果数据不在同一工作表里,我们将如何实现Excel跨工作表求和呢一、表头行列完全一致的多表求和这里要求表里的行列字段名
关键词不能为空
极力推荐
  • 如何用Excel批量整理手机号码-vcf转excel

  • vcf转excel,首先把待整理的电话号码粘贴到a列,并把a列统一设置成文本格式1利用clean函数去除空格在b1单元格填写如下公式,这样b1单元格就得到了过滤后的字符串=clean这里介绍一个不

ppt怎么做_excel表格制作_office365_word文档_365办公网