如何根據 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

必須啟用巨集才能使其工作!

相關內容