我有一個電子表格,我需要列B自動填充日期和時間列C-K更新。有比K更遠的列,我不想觸發更新代碼。VBA代碼日期條目列更新範圍
首先,我用下面的代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
i = Target.Row
Dim t As String
t = VBA.Now
Cells(i, 2) = t
End Sub
這並沒有對我的情況下工作,因爲這會更新該行中的任何改變。這樣做的好處是用戶不能輸入這些單元格,以防止VBA輸入更新的日期。
能觸發只是所選行,我去下面的代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range
Set KeyCells = Range("C6:K43")
If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then
Dim i As Integer
i = Target.Row
Dim t As String
t = VBA.Now
Cells(i, 2) = t
End If
End Sub
這一點,但是,現在能夠通過用戶鍵入結束,不再工作。
我試過鎖定單元格,但然後VBA無法工作。我也嘗試使用偏移公式,但由於單元格的範圍超過1列,所以這不起作用。
任何建議之前,我把我的頭髮掉?
當從更改事件處理程序中更新工作,你應該在執行更新禁用的事件,或將重新觸發你的代碼。 –
http://stackoverflow.com/questions/3037400/how-to-lock-the-data-in-a-cell-in-excel-using-vba我認爲這可能會幫助你。 –