Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 11197|回复: 5

如何利用vba查找两个特定字符串间的字符,将其剪切写至其它单元格里

[复制链接]
发表于 2012-9-5 14:42 | 显示全部楼层 |阅读模式
如何利用vba查找两个特定字符串( , )间的字符,将其剪切写至其它单元格里,也就是将附件中的B列中的每个单元格里的内容,分解至同行中的五个单元格内,如:将“4131716 , 儒曼环保(安全防护) , 防静电产品及工程、无尘室、净化设备及工程、作业保护 , 31 , 需要身份验证才能加入该群”,分解成“4131716”“儒曼环保(安全防护)”防静电产品及工程、无尘室、净化设备及工程、作业保护 ”“31”“需要身份验证才能加入该群”等五个部分,分别写至同一行中的五个列位里去。
 楼主| 发表于 2012-9-5 14:48 | 显示全部楼层
具体情况祥见附件

1.zip

9.1 KB, 下载次数: 120

回复

使用道具 举报

发表于 2012-9-5 14:48 | 显示全部楼层
本帖最后由 fjmxwrs 于 2012-9-5 14:51 编辑

你这个问题直接用分列就解决了,为什么还要用VBA呢?
选择B列,分列,分隔符,选择逗号,确定,就分列好了。
回复

使用道具 举报

 楼主| 发表于 2012-9-5 15:00 | 显示全部楼层
噢,太感谢了,让你见笑我,本人是excel菜鸟,对excel不太熟。
回复

使用道具 举报

发表于 2012-9-5 15:01 | 显示全部楼层
是啊,为啥要弃简求烦?基本操作可以解决的问题没必要用VBA.
回复

使用道具 举报

发表于 2012-9-5 15:24 | 显示全部楼层
本帖最后由 hrpotter 于 2012-9-5 15:30 编辑

你的数据还是比较乱的,不规范,如果按“,”分,不止五列的,有的是五列,有的超过五列,暂时按前二个,和后二个逗号的分开,中间的都归在一起,不然就得手工一个个分了
  1. Sub test()
  2.     Dim arr, brr, crr
  3.     Dim i As Long, j As Long
  4.     arr = Range("b2:b" & Range("b65536").End(xlUp).Row)
  5.     ReDim brr(1 To UBound(arr), 1 To 5)
  6.     For i = 1 To UBound(arr)
  7.         crr = Split(arr(i, 1), ",")
  8.         brr(i, 1) = crr(0)
  9.         brr(i, 2) = crr(1)
  10.         brr(i, 4) = crr(UBound(crr) - 1)
  11.         brr(i, 5) = crr(UBound(crr))
  12.         For j = 2 To UBound(crr) - 2
  13.             brr(i, 3) = brr(i, 3) & "," & crr(j)
  14.         Next
  15.         brr(i, 3) = Mid(brr(i, 3), 2)
  16.     Next
  17.     Range("c2").Resize(UBound(brr), 5) = brr
  18.     Range("b:g").Columns.AutoFit
  19. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:42 , Processed in 0.305870 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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