|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
- Sub Macro1()
-
- S20230717_132705_拆分行_分隔符
-
- End Sub
- Sub S20230717_132705_拆分行_分隔符()
-
- Dim 编号01_单元格区域
- Dim 编号02_第几列
- Dim 编号03_数组
- Dim 编号04_工作簿
-
- '标记
- 'Set 编号01_单元格区域 = Application.InputBox(prompt:="选择单元格区域", Title:="", Default:="单元格区域", Type:=8)
- 'Set 编号01_单元格区域 = Selection
- Set 编号01_单元格区域 = Worksheets("表1").Range("A3:M23")
-
- 编号03_数组 = 编号01_单元格区域.Value
-
-
-
- '标记
- '编号02_第几列 = Application.InputBox(prompt:="指定按第几列拆分", Title:="", Default:="数字", Type:=1)
- 编号02_第几列 = 6
-
-
-
- '标记
- 'S20220515_163613_xx 编号03_数组, 编号02_第几列, ","
- S20220515_163613_xx 编号03_数组, 编号02_第几列, "、"
-
-
-
-
- '标记
- 'Set 编号04_工作簿 = Workbooks.Add
- '编号04_工作簿.Worksheets(1).Range("A1").Resize(UBound(编号03_数组, 1), UBound(编号03_数组, 2)) = 编号03_数组
-
- Worksheets("表2").Range("A3").Resize(UBound(编号03_数组, 1), UBound(编号03_数组, 2)) = 编号03_数组
-
- End Sub
- Sub S20220515_163613_xx(数组, 按第几列拆分, 分隔符)
-
- Dim 编号01_数组
- Dim 编号02_第几列
- Dim 编号03_行数
- Dim 编号04_第几行
- Dim 编号05_数字
- Dim 编号06_数组()
- Dim 编号07_列数
- Dim 编号08_第几行
- Dim 编号09_第几行
- Dim 编号10_第几列
- Dim 编号11_分隔符的个数
- Dim 编号12_字符串
- Dim 编号13_数组
-
- 编号01_数组 = 数组
- 编号02_第几列 = 按第几列拆分
-
- 编号03_行数 = 0
- For 编号04_第几行 = 1 To UBound(编号01_数组, 1) Step 1
-
- 编号12_字符串 = 编号01_数组(编号04_第几行, 编号02_第几列)
-
- 编号11_分隔符的个数 = Len(编号12_字符串) - Len(Replace(编号12_字符串, 分隔符, ""))
- 编号05_数字 = 编号11_分隔符的个数 + 1
-
- 编号03_行数 = 编号03_行数 + 编号05_数字
-
- Next
-
- 编号07_列数 = UBound(编号01_数组, 2)
-
- Erase 编号06_数组
- ReDim Preserve 编号06_数组(1 To 编号03_行数, 1 To 编号07_列数)
-
- 编号08_第几行 = 0
-
- For 编号04_第几行 = 1 To UBound(编号01_数组, 1) Step 1
-
- 编号12_字符串 = 编号01_数组(编号04_第几行, 编号02_第几列)
-
- 编号11_分隔符的个数 = Len(编号12_字符串) - Len(Replace(编号12_字符串, 分隔符, ""))
- 编号05_数字 = 编号11_分隔符的个数 + 1
-
- If 编号05_数字 > 1 Then
-
- For 编号09_第几行 = 1 To 编号05_数字 Step 1
-
- 编号08_第几行 = 编号08_第几行 + 1
-
- 编号13_数组 = Split(编号12_字符串, 分隔符)
-
- For 编号10_第几列 = 1 To UBound(编号01_数组, 2) Step 1
-
- If 编号10_第几列 = 编号02_第几列 Then
-
- 编号06_数组(编号08_第几行, 编号10_第几列) = 编号13_数组(编号09_第几行 - 1)
-
- Else
-
- 编号06_数组(编号08_第几行, 编号10_第几列) = 编号01_数组(编号04_第几行, 编号10_第几列)
-
- End If
-
- Next
-
- Next
-
- End If
-
- If 编号05_数字 = 1 Then
-
- 编号08_第几行 = 编号08_第几行 + 1
-
- For 编号10_第几列 = 1 To UBound(编号01_数组, 2) Step 1
-
- 编号06_数组(编号08_第几行, 编号10_第几列) = 编号01_数组(编号04_第几行, 编号10_第几列)
-
- Next
-
- End If
-
- Next
-
- 数组 = 编号06_数组
-
- End Sub
复制代码 |
评分
-
1
查看全部评分
-
|