Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: laoau138

[VBA] 用VBA整理A1单元格分成两列

[复制链接]
发表于 2016-9-29 10:04 | 显示全部楼层
楼主你不是要3种方法吗?

最后一种,正则的。

  1. Sub test()
  2.     [b6].CurrentRegion.Offset(1) = ""
  3.     With CreateObject("VBScript.RegExp")
  4.         .Global = True
  5.         .Pattern = ".{2,3}(?=\(女\))"
  6.         If .test([a1]) = True Then
  7.             Set mc = .Execute([a1])
  8.             For Each Ma In mc
  9.                 i = i + 1: Cells(i + 5, 2) = i: Cells(i + 5, 3) = Ma
  10.             Next
  11.         End If
  12.     End With
  13. End Sub
复制代码

评分

参与人数 2 +9 收起 理由
today0427 + 6 老师的答案一定要学习!
laoau138 + 3 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2016-9-29 12:01 | 显示全部楼层
香川群子 发表于 2016-9-29 10:04
楼主你不是要3种方法吗?

最后一种,正则的。

不懂正则为何物
回复

使用道具 举报

发表于 2016-9-29 17:48 | 显示全部楼层
香川回复我不写完代码就太不好了:
a=replace(replace([a1],"(女)",","),",,",",")
a=left(a,len(a)-1)
b=split(a,",")
for each w in b
i=i+1:cells(i+5,2)=i:cells(i+5,3)=w
next

评分

参与人数 2 +9 收起 理由
laoau138 + 3 契丹小狗的答案错误,你怎么还赞它
today0427 + 6 都是大神!赞一个

查看全部评分

回复

使用道具 举报

发表于 2016-9-29 19:08 | 显示全部楼层
pengyx 发表于 2016-9-29 17:48
香川回复我不写完代码就太不好了:
a=replace(replace([a1],"(女)",","),",,",",")
a=left(a,len(a)-1)

运行得到的结果是:

1
朱清燕
2
林鑫
3
林秋静
4
林永鑫
5
林云艳
6
林嘉惠


但这显然不是楼主的要求!
回复

使用道具 举报

 楼主| 发表于 2016-9-29 19:40 | 显示全部楼层
香川群子 发表于 2016-9-29 19:08
运行得到的结果是:

她的方法没有认真看,更没有测试过,

她最喜欢马后炮发表
回复

使用道具 举报

发表于 2016-9-30 08:43 | 显示全部楼层
laoau138 发表于 2016-9-29 19:40
她的方法没有认真看,更没有测试过,

她最喜欢马后炮发表

代码无需测试,看其思路是否正确即可。

……正因为其代码思路错误,所以验证一下结果确实有问题。

然而本人丝毫没感觉到错误,也是一大奇葩。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-7 10:51 , Processed in 0.134164 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表