假设我有以下值:
A2=a, A5=b, A6=c, A10=d
基本上我想要完整的先前的值,如下所示:
A2:A4=a,A5=b, A6:A9=c,A10:A99999=d
我尝试了以下操作:我在右侧插入了一个新列,并执行了类似以下操作:=IF(A2="",A1,A2)
但这仅适用于 B 列上的前 2 个实例,因为间隙更多,并且间隙数量并不总是相同。我显然遗漏了一些东西。
谢谢。
答案1
答案2
尝试这个简短的宏:
Sub FillDown()
Dim rng As Range, r As Range
Set rng = Range("A2:A99999")
Application.ScreenUpdating = False
For Each r In rng
v = r.Value
If v = "" Then r.Value = r.Offset(-1, 0)
Next r
Application.ScreenUpdating = True
End Sub
宏的安装和使用非常容易:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除宏:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要使用 Excel 中的宏:
- ALT-F8
- 选择宏
- 触摸运行
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其工作!