一、将范围A的数据打平填充到范围B
1、需求说明
将A2:D4的值填充到范围A7:A18,如下:
2、实现
思路:获取A2:D4范围的值到一个数组,循环数组,将值写入到A7:A18
- 第一步,在excel插入一个按钮,笔者这里用的是一个矩形,右击矩形,选择“指定宏”,在弹出的框中输入宏名称,点击新建,打开VB编辑器
- 第二步,获取A2:D4的值
Dim arr
arr = Worksheets("sheet1").Range("A2:D4")
- 第三步,循环遍历arr,在立即窗口(类似于命令窗口和控制台)输出每个值
For Each i In arr
Debug.Print i
Next
- 第四步,目标范围是A7:A18,所以定义一个start等于6,在遍历arr时,start自增1,为Astart赋值:
Dim start
start = 6
For Each i In arr
start = start + 1
Worksheets("sheet1").Range("A" & start).Value = i
Next
完整代码如下:
Sub 矩形2_Click()
Dim start
Dim arr
start = 6
arr = Worksheets("sheet1").Range("A2:D4")
For Each i In arr
start = start + 1
Worksheets("sheet1").Range("A" & start).Value = i
Next
End Sub
- 第五步,点击矩形,实现将数据写入指定范围。
二、遍历单元格,输出两列,第一列是单元格名,第二列是对应的值
1、需求说明
将A1:C4的数据填充到A6:B18,第一列展示单元格名,第二列展示对应的值,例如A1对应aaa:
2,实现
获取单元格名:target.Cells.Address(0, 0)
获取值:target.Cells
Sub 矩形1_Click()
Dim start
start = 5
For Each i In Worksheets("sheet2").Range("A1:C4")
start = start + 1
Worksheets("sheet2").Range("A" & start).Value = i.Cells.Address(0, 0)
Worksheets("sheet2").Range("B" & start).Value = i.Cells
Next
End Sub
总结
本篇记录了使用VBA获取指定范围的数据、遍历数据、为指定范围动态赋值的方法,供个人学习和参考!