
我在每個單元格中有一個包含以下公式的列,用於計算每個單元格左側兩個單元格之間的公里差:
=IF(AND(INDIRECT(ADDRESS(ROW(),COLUMN()-2))<>"", INDIRECT(ADDRESS(ROW(), COLUMN()-1))<>""), INDIRECT(ADDRESS(ROW(),COLUMN()-1))-INDIRECT(ADDRESS(ROW(),COLUMN()-2)), "")
我的問題是,每次我在現有資料之間插入新行時,該行中的所有單元格都是空的,我需要手動將此程式碼放入空白單元格中。
我是否可以將列中的每個單元格(不包括標題)設定為特定公式即使我插入新行?
我嘗試將列設為表格,並且每當插入新行時它都會成功自動完成單元格,但是,我還有其他列也想自動完成,並且 Excel 不允許我插入新行,如果我將多個列製作為一張表格。
答案1
這是一個小演示,您可以根據自己的實際架構進行調整。在演示中:
- 感興趣的列是列乙
- 如果插入多行,則不會發生任何事情
- 如果插入資料區域下方的行,則不會發生任何情況
- 如果刪除一行,則不會發生任何事情
- 如果插入資料中間的行,則列中的儲存格乙將用上面的公式或下面的公式填充
- 如果新儲存格上方或下方沒有公式,則不會發生任何情況
在工作表程式碼區域插入下列子代碼:
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。