Excel:為列中的每個儲存格設定預設公式

Excel:為列中的每個儲存格設定預設公式

我在每個單元格中有一個包含以下公式的列,用於計算每個單元格左側兩個單元格之間的公里差:

=IF(AND(INDIRECT(ADDRESS(ROW(),COLUMN()-2))<>"", INDIRECT(ADDRESS(ROW(), COLUMN()-1))<>""), INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)), "")

當我插入新行時沒有公式的空白單元格

我的問題是,每次我在現有資料之間插入新行時,該行中的所有單元格都是空的,我需要手動將此程式碼放入空白單元格中。

我是否可以將列中的每個單元格(不包括標題)設定為特定公式即使我插入新行

我嘗試將列設為表格,並且每當插入新行時它都會成功自動完成單元格,但是,我還有其他列也想自動完成,並且 Excel 不允許我插入新行,如果我將多個列製作為一張表格。

答案1

這是一個小演示,您可以根據自己的實際架構進行調整。在演示中:

  1. 感興趣的列是列
  2. 如果插入多行,則不會發生任何事情
  3. 如果插入資料區域下方的行,則不會發生任何情況
  4. 如果刪除一行,則不會發生任何事情
  5. 如果插入資料中間的行,則列中的儲存格將用上面的公式或下面的公式填充
  6. 如果新儲存格上方或下方沒有公式,則不會發生任何情況

在工作表程式碼區域插入下列子代碼:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range, r1 As Range, r2 As Range

    Set r = Target
    If r.Rows.Count > 1 Then Exit Sub
    If r.Columns.Count <> Cells.Columns.Count Then Exit Sub
    If r.Row = 1 Then Exit Sub

    Set r1 = Intersect(r, Columns(2))
    If r1.Value <> "" Then Exit Sub

    If r1.Offset(-1, 0).HasFormula Then
        Application.EnableEvents = False
            r1.Offset(-1, 0).Copy r1
        Application.EnableEvents = True
        Exit Sub
    End If

    If r1.Offset(1, 0).HasFormula Then
        Application.EnableEvents = False
            r1.Offset(1, 0).Copy r1
        Application.EnableEvents = True
        Exit Sub
    End If

End Sub

答案2

我本來打算發布這個視頻,但顯然,我必須輸入至少 30 個字元。

“這是一個簡單的方法來做到這一點”怎麼樣?天哪,才29歲。

對於任何有興趣的人,「插入圖片」圖示不會接受 .mov,但有一個相當整潔的網站它將視訊檔案轉換為動畫 GIF。

在此輸入影像描述

相關內容