|
发表于 2017-3-12 19:42
|
显示全部楼层
本楼为最佳答案
- Sub tt()
- arr = Range("a2:f" & [a65536].End(3).Row) '数据区域,根据实际情况自定
- ReDim brr(1 To UBound(arr) * 10, 1 To UBound(arr, 2) + 1)
- With CreateObject("vbscript.regexp")
- .Global = True
- .Pattern = "(-?\d*[\u4e00-\u9fa5]+?)(\d+)"
- For i = 1 To UBound(arr)
- x = arr(i, UBound(arr, 2))
- Set ma = .Execute(x)
- For Each m In ma
- n = n + 1
- For j = 1 To UBound(arr, 2) - 1
- brr(n, j) = arr(i, j)
- Next
- brr(n, j) = m.submatches(0)
- brr(n, j + 1) = m.submatches(1)
- Next
- Next
- End With
- With Sheet2
- .Cells.ClearContents
- .[a1].Resize(, 7) = Array("日期", "工单号", "产品编号", "良品数", "不良总数", "不良分类", "数量")
- .[a2].Resize(n, UBound(brr, 2)) = brr '显示位置自定。
- .[a2].Resize(n).NumberFormatLocal = "m月dd日" '显示位置自定。
- .Activate
- End With
- End Sub
复制代码 |
|