|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Sub ykcbf() '//2023.5.29 Dim arr() As Variant Dim lastRow As Long Dim i As Long, j As Long, k As Long Dim s As String, st As String, st1 As String, st2 As String Dim colStart As Long, colEnd As Long, rowNum As Long Dim reg As Object Set reg = CreateObject("VBScript.Regexp") reg.Pattern = "\d+" lastRow = Cells(Rows.Count, "A").End(xlUp).Row ReDim arr(1 To lastRow, 1 To 1) k = 1 For i = 2 To lastRow s = Cells(i, 1) If InStr(s, "") = 0 Then arr(k, 1) = s k = k + 1 Else st = Split(s, "") st1 = Val(st(0)) reg.Pattern = "\d+" st2 = reg.Replace(st(0), "") colStart = Range(st2 & "1").Column st2 = reg.Replace(st(1), "") colEnd = Range(st2 & "1").Column rowNum = Val(Mid(st(0), 1, reg.Execute(st(0))(0).FirstIndex)) For j = colStart To colEnd arr(k, 1) = Cells(rowNum, j).Value & Cells(1, j).Address(False, False) k = k + 1 Next End If Next Range("C2").Resize(k - 1, 1).Value = arr End Sub |
|