选中时更新单元格

时间:2016-01-21 14:11:24

标签: excel vba

一旦选择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

1 个答案:

答案 0 :(得分: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