您的方法存在的問題是,A1將始終更改爲反映COUNT,您不能使用WAS值。還有什麼要進入列A中的其餘單元格,您不能像@JMax所示那樣使用相鄰行中的計數?
如果你必須增加固定計數,我會建議你想一個簡單的宏,你想要的任何一個細胞的變化事件。例如,每次輸入「FOO」或「BAR」或任何其他數據時,它會對B:B中的範圍進行COUNTIF,並將輸入它的結果連接在相鄰的C中。根本沒有理由依賴於A1,可能會改變。
這個例子可能會讓你開始。 Countif可以使用';'爲您的Excel版本 它假定您正在進行數據輸入,然後移動到下一個單元格。它還會檢查您是否已在C中的相鄰單元格中輸入條目,以便在重新訪問單元格時不會更改計數。
這意味着它將在該相鄰單元格中出現錯誤,除非在進行更改之前先刪除C中的值。當然,如果你有4個FOO,然後刪除一個,你仍然有FOO_4,它不會改變,所以如果你將第4個FOO改爲BAR,先刪除FOO_4。如果增量HAS與其他原因的實際計數相匹配,我不會依賴於此。
Sub doIncrement()
If ActiveCell.Column = 2 And ActiveCell.Offset(-1, 1) = "" Then
ActiveCell.Offset(-1, 1) = ActiveCell.Offset(-1, 0) & "_" & WorksheetFunction.CountIf(Range("B:B"), (ActiveCell.Offset(-1, 0)))
Else: Exit Sub 'or do something else
End If
End Sub
然後在
Private Sub Worksheet_Change(ByVal Target As Range)
Call doIncrement
End Sub
調用此嗯......選擇,'Copy' - '粘貼(值)'? – GSerg
尋找一個自動化的解決方案,這樣當添加新行時,不需要複製/粘貼就可以自動完成 – sdolgy