Excel 宏

来源:百度知道 编辑:UC知道 时间:2024/06/01 15:42:41
我有一个EXCEL表格,已经有了数据1万行,现在想实现:A,D列中,如果是空的Cell就复制上一行的同列Cell的数据
比如表格:
A B C D
1 a 1
2
3 b 2
4
5
6 c 3
7
想变成:
A B C D
1 a 1
2 a 1
3 b 2
4 b 2
5 b 2
6 c 3
7 c 3

我不懂宏,请问程序该怎么写?最好具体点。

假设你数据是从第一行开始的.
按下ALT+F11,复制下列代码.按下F5运行

Sub Macro1()
Range("A63356").End(xlUp).Select
A = ActiveCell.Row
Range("A1:A" & A).Select
For Each X In Selection
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
End If
ActiveCell.Offset(1, 0).Select
Next
Range("d63356").End(xlUp).Select
b = ActiveCell.Row
Range("d1:d" & b).Select
For Each X In Selection
If ActiveCell.Value = "" Then
ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
End If
ActiveCell.Offset(1, 0).Select
Next
End Sub

这应该不是宏可以办得到的吧
要用VB做了
你去找一下EXC里的VB编辑器的资料学习一下吧

试试吧,加了注释:

Sub 向下填充()
Dim R As Range '定义各个对象变量
For Each R In ActiveSheet.Range("A1").CurrentRegion.Rows

'For each...Next循环来访问A1的当前区域的每一行。(相当于选中A1后按Ctrl+Shift+8)
If R.Cells(1, 2