2017-08-16 30 views
0

基本上它很簡單(我認爲),但我似乎無法得到它!Excel VBA - 爲每一列或行添加日期戳

本質上,我正在構建一個跟蹤器,每當單元格被修改時,我都需要一個日期戳記。我可以放入代碼,因此當列b中的任何內容被修改爲在列C中放置日期時,但是隨後我無法對列D中的數據重複以在列E中輸入日期。

基本上我想在每個其他列的日期戳。如果更容易成爲其他所有行,那麼我只需更改標題。

如果它的行必須從放入第2行(標題)的數據開始,如果它的列數據從列B放入(標題再次)。

任何人都可以幫忙嗎?我有上網一看,但似乎無法找到答案......

+0

向我們展示你到目前爲止(代碼),以便我們可以改進它。 – CLR

+0

'Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count> 1 Then Set Target = Target.Cells(1,1) If Not Intersect(Target,Columns(「B:B」))Nothing Then 如果不爲IsEmpty(目標)然後 Target.Offset(0,1)。價值=現在 否則 Target.Offset(0,1).ClearContents 結束如果 結束如果結束 Sub' – JaeJay

回答

1

入住此基於事件的宏:

Private Sub Worksheet_Change(ByVal Target As Range) 
    If Target.Column Mod 2 = 0 Then 
     Application.EnableEvents = False 
     Target.Offset(0,1) = Date 
     Application.EnableEvents = True 
    End If 
End Sub 
+0

這條線是有缺陷: '如果Target.Column%2 = 0然後' 您的意思是: '如果Target.Column Mod 2 = 0那麼' – Olly

+0

@Olly我不知道%不起作用。感謝您的澄清。 –

+0

這工作謝謝你! – JaeJay

0

使用Worksheet_Change - 活動(另一種很好的例子,對特定細胞here )。

根據您的需求,你做這樣的事情:

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
    Cells(1, Target.Column + 1).Value = Format(Now(), "dd.mm.yyyy") 
    Application.EnableEvents = True 
End Sub 

其重要插入任何值之前設置.EnableEvents = False,否則會再次觸發事件。