ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > Excel VBA > 如何用VBA分拆逗号和连接号混排的字符串?

如何用VBA分拆逗号和连接号混排的字符串?

作者:绿色风 分类: 时间:2022-08-18 浏览:94
楼主
herelazy
Q:如何用VBA把C列中的逗号和连接号混排的标签分拆在单独的一列中?
如图所示:

 
A:
  1. Sub fenjie()
  2.     '适合逗号与连接号~混排
  3.     Dim arr, r&, i&, brr(), j&, n&, a, a1, a2, b, k&
  4.     With Sheets("sheet1")
  5.         r = .Cells(Rows.Count, 1).End(3).Row
  6.         arr = .Range("a1:c" & r)
  7.         .[d1].Resize(Rows.Count, 3).ClearContents
  8.         For i = 1 To r
  9.             a = Split(arr(i, 3), ",")
  10.             For k = 0 To UBound(a)
  11.                 b = Split(a(k), "~")
  12.                 If UBound(b) Then
  13.                     a1 = "": a2 = ""
  14.                     For n = 1 To Len(b(0))
  15.                         If IsNumeric(Mid(b(0), n, 1)) Then
  16.                             a1 = Mid(b(0), n)
  17.                             a2 = Mid(b(1), n)
  18.                             Exit For
  19.                         End If
  20.                     Next
  21.                     j = j + a2 - a1 + 1
  22.                     ReDim Preserve brr(1 To 3, 1 To j)
  23.                     For n = a1 To a2
  24.                         brr(1, j - a2 + n) = arr(i, 2)
  25.                         brr(2, j - a2 + n) = arr(i, 1)
  26.                         brr(3, j - a2 + n) = Replace(b(0), a1, "") & n
  27.                     Next
  28.                 Else
  29.                     j = j + 1
  30.                     ReDim Preserve brr(1 To 3, 1 To j)
  31.                     brr(1, j) = arr(i, 2)
  32.                     brr(2, j) = arr(i, 1)
  33.                     brr(3, j) = a(k)
  34.                 End If
  35.             Next
  36.         Next
  37.         .[d1].Resize(j, 3) = Application.Transpose(brr)
  38.     End With
  39. End Sub

分解2.rar


2楼
亡者天下
过来学习,谢谢

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap