|
- Sub 提取()
- Dim arr, brr(), i%, j%, k1%, k2%, n1%, n2%, e1%, e2%
- Dim reg As Object, zz, z
- Set reg = CreateObject("vbscript.regexp")
- arr = Sheets(1).Range("d9").CurrentRegion.Value
- ReDim brr(1 To UBound(arr), 1 To 6)
- For i = 1 To UBound(arr)
- For j = 1 To UBound(arr, 2)
- If arr(i, j) = "货物名称" Then n1 = i: n2 = j
- If arr(i, j) = "合计" Then e1 = i
- If arr(i, j) = "金额" Then e2 = j
- Next
- Next
- For i = n1 To e1 - 1
- k2 = 1: k1 = k1 + 1
- For j = n2 To e2
- If arr(i, j) <> "" Then
- k2 = k2 + 1
- brr(k1, k2) = arr(i, j)
- End If
- Next
- Next
- With reg
- .Global = True
- .Pattern = "(.+[\u4e00-\u9fa5]+)(.+)"
- For i = 2 To UBound(brr)
- Set zz = .Execute(brr(i, 2))
- For Each z In zz
- brr(i, 1) = .Replace(z.Value, "$1")
- brr(i, 2) = .Replace(z.Value, "$2")
- Next
- Next
- End With
- Range("a1").CurrentRegion.ClearContents
- Sheets(3).Range("a1").Resize(k1, 6) = brr
- Sheets(3).Range("a1").Resize(1, 2) = Array("货物名称", "规格型号")
- MsgBox "提取完毕", , "提示"
- End Sub
复制代码
求助.rar
(38.41 KB, 下载次数: 4)
|
|