如何根据 Excel 中的先前值完成整列(不一致)?

如何根据 Excel 中的先前值完成整列(不一致)?

假设我有以下值:

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

您不需要 VBA 来实现这一点,您几乎可以用自己的公式来实现。您只需使用 B1 代替 A1。因此 B2 将包含:

=IF(A2="",B1,A2)

截屏

答案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

宏的安装和使用非常容易:

  1. ALT-F11 打开 VBE 窗口
  2. ALT-I ALT-M 打开新模块
  3. 粘贴内容并关闭 VBE 窗口

如果您保存工作簿,宏将随之保存。如果您使用的是 2003 以后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx

要删除宏:

  1. 调出如上所示的 VBE 窗口
  2. 清除代码
  3. 关闭 VBE 窗口

要使用 Excel 中的宏:

  1. ALT-F8
  2. 选择宏
  3. 触摸运行

要了解有关宏的更多信息,请参阅:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

必须启用宏才能使其工作!

相关内容