vba - Q. 如何使用 VBA 转置每 n 行
问题描述
有人可以建议我如何使用 VBA 将每 n 行转置为多列。我有大约 10000 行与此类似的数据(每个转置行都需要在 '##' 之后执行)
数据集 |-| |-| |##| |文本1| |文本2| |文本3| |文本4| |##| |文本5| | 正文6 | 正文7 | ## | 正文8 | 正文9 | text10 | text11 | ## | 文本12 | 文本13 | ...
结果(使用 ' | ' 分隔 excel [ A | B | C | D...] 中的每一列)
- | - | - | - | - |
---|---|---|---|---|
## | 文本1 | 文本2 | 文本3 | 文本4 |
## | 文本5 | 文本6 | 文本7 | |
## | 文本8 | 文本9 | 文本10 | 文本11 |
## | 文本12 | 文本13 | ... |
解决方案
试试这个代码
Sub Test()
Dim a, i As Long, m As Long, k As Long, mx As Long
a = Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
ReDim b(1 To UBound(a, 1), 1 To 100)
i = 1
Do Until a(i, 1) = "##" And i >= UBound(a, 1)
If a(i, 1) = "##" Then m = m + 1: k = 1
b(m, k) = a(i, 1)
If mx < k Then mx = k
k = k + 1
If i = UBound(a, 1) Then Exit Do
i = i + 1
Loop
Range("D1").Resize(m, mx).Value = b
End Sub
推荐阅读
- c++ - 在 C++ 中从 std::cout 中提取标准输出
- javascript - `--save` 在 NPM 5.0 + 中有什么作用
- reactjs - 使用联合类型泛型时推断单个类型(扩展反应组件道具)
- php - 如何在 Laravel 中使用 FOREACH 从数据库中获取数据?
- r - For 循环在第 2 行后创建 NA
- android - 反应原生。每当应用程序来自后台时,如何获取用户本地身份验证?
- python - 用 NA 填充 Categorical NaN 值,用 0 填充 Numerical NaN
- python - Python 帮助:用 Pandas 合并/加入替换 Excel 中的 V-Lookup
- c# - unity track 物体位置
- rust - 调整 Rust 函数以处理 PrinInt 而不是 i64 的指导