excel - 需要将垂直数据转置为水平格式,但在 Excel VBA 中,垂直格式的单元格可以有超过 2 或 3 个子类别
解决方案
它基于您的原始数据仍列在列方向上的假设。
Sub test2()
Dim Ws As Worksheet
Dim toWs As Worksheet
Dim vDB, vR()
Dim rngDB As Range
Dim i As Long, j As Long, n As Long
Dim r As Long, c As Long, k As Long
Set Ws = Sheets(1)
Set toWs = Sheets(2)
Set rngDB = Ws.Range("a1").CurrentRegion
vDB = rngDB
r = UBound(vDB, 1)
c = UBound(vDB, 2)
For j = 2 To c
n = n + 1
'ReDim Preserve vR(1 To 4, 1 To n)
ReDim Preserve vR(1 To 5, 1 To n)
vR(1, n) = vDB(1, j)
vR(2, n) = vDB(2, j)
vR(3, n) = vDB(3, j)
vR(4, n) = vDB(4, j)
vR(5, n) = vDB(r, j) 'added insurance
'For i = 5 To r
For i = 5 To r - 1
If vDB(i, j) <> "" Then
n = n + 1
ReDim Preserve vR(1 To 5, 1 To n)
vR(4, n) = vDB(i, j)
End If
Next i
Next j
With toWs
k = .UsedRange.Rows.Count + 1
'.Range("a" & k).Resize(n, 4) = WorksheetFunction.Transpose(vR)
.Range("a" & k).Resize(n, 5) = WorksheetFunction.Transpose(vR)
End With
End Sub
表 1
表 2
推荐阅读
- python - Unicode-Symbol 上的 Pathlib 崩溃 iff 程序与 PyInstaller 一起打包
- django - 创建虚拟环境
- python - 来自 deque 的扩展类超出了 RecursionError 最大递归深度
- javascript - 在本机反应中编辑Appbar放大图标
- tensorflow - 多类分类的错误 ROC 曲线
- javascript - 类型 'xx' 不可分配给类型 'any[] | 可迭代
| >(可迭代 & 任何[]) | (任何[] & 可迭代 )' - oracle - 在 Oracle 19c 数据库中,当我们删除表时,使用该表的过程、触发器和索引会发生什么情况?
- javascript - jQuery contents() 与 'iframe' 一起使用时,文本在 firefox 中消失
- r - 包级设置或选项的约定?
- php - WordPress wp_dequeue_script 删除所有其他脚本