|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- Sub test()
- Dim ar(), br(), x$, k%
- ar = Range("a2:i2").Value
- ReDim br(1 To 2, 1 To 9)
-
- For k = 1 To 9
- x = Mid(ar(1, k), 3)
- x = MergeString(x, "、编号")
- br(1, k) = "编号" & x
- br(2, k) = "编号" & ExpandString(x, "、编号", "-编号")
- Next
- Range("a5:i6").Value = br
- End Sub
- Function MergeString(str0$, s0$) As String
- Dim ar, br, i%, j%, k%, t, s1
- ar = Split(VBA.StrConv(str0, vbNarrow), VBA.StrConv(s0, vbNarrow))
- s1 = "-" & Mid(s0, 2)
- ReDim br(0 To UBound(ar))
- 'SortArray ar
- For i = 0 To UBound(ar)
- t = Val(ar(i))
- If i = 0 Then
- br(0) = ar(i)
- j = 0
- ElseIf i = UBound(ar) Then
- If t - Val(ar(i - 1)) = 1 Then
- br(i) = s1 & ar(i)
- Else
- br(i) = s0 & ar(i)
- End If
- ElseIf t - Val(ar(i - 1)) <> 1 Then
- If i - 1 = j Then
- br(i) = s0 & ar(i)
- Else
- br(i - 1) = s1 & ar(i - 1)
- br(i) = s0 & ar(i)
- End If
- j = i
- End If
- Next
- MergeString = Join(br, "")
- End Function
- Function ExpandString(str0$, s0$, s1$) As String
- Dim ar, br, x, s$, i%
- ar = Split(str0, s0)
- For Each x In ar
- br = Split(x & s1 & x, s1)
- For i = Val(br(0)) To Val(br(1))
- s = s & s0 & Format(i, "00")
- Next
- Next
- ExpandString = Mid(s, Len(s0) + 1)
- End Function
- Function SortArray(ar)
- End Function
复制代码 |
|