excel单元格数据分列

eleksbai 2017-02-19 06:43:37
请问这个宏支不支持零宽断言的,应该有其它方法的吧,请老司机带带我。




正则表达式攻略http://deerchao.net/tutorials/regex/regex.htm#howtouse
代码块,昨天网上找的

'Sub MySplit()
''自定义的数据分列
'
'' 快捷键: Ctrl+r
'
'Dim Str, i%, k%, Rg As Range
'
'Dim InputRg As Range, OutputRg As Range '定义变量,我就不废话了 input输入 output输出
'
'
'
'With CreateObject("VBScript.RegExp")
'
''建立一个正则对象
'
'Set InputRg = Application.InputBox("输入需要拆分的单元格", , , , , , , 8)
''调用程序那个弹窗,可以选区域
'
'Set OutputRg = Application.InputBox("输入需要输出的位置", , Selection.Address, , , , , 8) '同上
'
' .IgnoreCase = True '设定参数,这是忽略大小写,根据自己情况调整
'
' .Pattern = "(?<=..:).+" '正则表达式,\d是数字型,也可以[0-9]。正则有随意的一面,又有严格的一面
'
' .Global = True '是否应用于全局,此外还有时候判断换行是否结束该段匹配的参数等。
'
' k = 0 '计数的无名小卒,用于累加行号
'
' For Each Rg In InputRg '循环输入区域的,本段代码针对一列,具体的请自行修改
'
' Set Str = .Execute(Rg) '正则匹配这个单元格,放到str对象中
'
' For i = 0 To Str.Count - 1 '循环读取匹配到的值
'
' Cells(OutputRg.Row + k, OutputRg.Column + i) = Str(i) '根据输出位置的行列写入表格
'
' Next
'
' k = k + 1 '给无名小卒累加
'
' Next

'End With '装逼完成

...全文
266 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
eleksbai 2017-03-05
  • 打赏
  • 举报
回复
感谢解惑,我直接替换了
X-i-n 2017-02-21
  • 打赏
  • 举报
回复
vba和vbs都不支持零宽断言,直接split吧。或者用正则取完以后再替换

5,140

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧