2016-01-21 53 views
2

選擇範圍A2:A20中的單元格後,我需要活動單元格自動選擇實際年份。我的VBA代碼一次更改所有單元格。選中時更新單元格

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim i As Integer 
For i = 2 To 20 
    If ActiveCell = Cells(i, "A") And Cells(i, "A") = "" Then 
     Cells(i, "A").Value = Year(Now) 
    End If 
Next i 
Range("A:A").EntireColumn.AutoFit 
End Sub 
+0

如果您的條件爲'If ActiveCell = Cells(「A」,i)and Cells(「A」,i)=「」Then'。手指交叉。 –

+0

您是否只希望日期更新** **如果單元格A2:A20更改?或者,如果這些單元格僅被選中,那麼你是否希望這樣?此外,什麼是會觸發日期改變的標準。我的意思是要更改哪些單元格需要單元格A2:將A20設置爲當前年份? –

+0

謝謝Ankit Bajpai,但我有錯誤(TYPE MISMATCH) – nater303

回答

3

既然你想要的A2:A20擁有當年,時自動被選中的單元格,你需要使用Worksheet_SelectionChange事件。然後,在這種情況下,您只需測試所選單元格是否在A2:A20範圍內,如果是,則將該值設置爲當前年份。

Private Sub Worksheet_SelectionChange(ByVal Target As Range) 

If Not Intersect(Me.Range("A2:A20"),Target) Is Nothing Then 
    Target.Value = Year(Now()) 
End If 

Range("A:A").EntireColumn.AutoFit 

End Sub 
+1

它的工作原理和那是我需要的。 – nater303

相關問題