vba - 从列表中复制元素“n”次,EXCEL VBA
问题描述
我对 Vba 真的很陌生,所以我尝试学习一些以减少我的工作重复性
我有一个这种格式的列表,我有大约 550 行
Name N
AAAAA 2
BBBB 5
CCCCC 7
我需要复制每个名称 n 次,像这样
AAAAA
AAAAA
BBBBB
BBBBB
BBBBB
BBBBB
BBBBB
直到姓氏,应该是大约 1500 行
找不到任何方法来做到这一点。请帮忙
提前致谢
解决方案
这个简单的代码可以做到:
Sub expand()
With Worksheets("Sheet2") 'Source sheet
Dim rng As Variant
rng = .Range(.Cells(2, 1), .Cells(.Rows.Count, 2).End(xlUp)).Value
Dim oRng() As Variant
ReDim oRng(1 To Application.Sum(Application.Index(rng, 0, 2)), 1 To 1)
End With
Dim i As Long
Dim k As Long
k = 1
For i = 1 To UBound(rng, 1)
Dim j As Long
For j = 1 To rng(i, 2)
oRng(k, 1) = rng(i, 1)
k = k + 1
Next j
Next i
With Worksheets("Sheet2").Range("C1") 'Ouput range
.Resize(UBound(oRng, 1), 1).Value = oRng
End With
End Sub
推荐阅读
- docker - 用php执行docker,然后在命令中使用其他容器
- javascript - 如何读取目录并获取所有 HTML 文件的数组
- angularjs - 将 Azure AD 与 AngularJS 集成并调用 CORS web api
- django - 试图将 Bokeh Wordcloud2 传递给 Django Templete
- reactjs - Formik & Yup - 如何为数组和字符串创建模式
- reactjs - React Saga Generator 产生调用未定义对象
- android - 如何在firebase中连接两个用户?
- java - JSON 返回的 opencsv.parseLine 缺少 "
- json - 如何从列表 var 构建 json 字符串
- angular - 调用已订阅的方法如何等待订阅返回类型?