如何使用VBA将Excel单元格设置为当前date?

当我尝试设置一个Excel单元格到当前date,每当有人在工作表中的其他单元格中进行更改时出现错误。

这里是代码:

Dim EditDate As Date RowNum = ActiveCell.Row ColNum = ActiveCell.Column If ColNum = 11 Or ColNum = 13 Or ColNum = 19 Or ColNum = 20 Or ColNum = 21 Or ColNum = 22 _ Or ColNum = 23 Or ColNum = 24 Then Application.EnableEvents = False EditDate = Date() ActiveWorksheet.Range("Y," & RowNum).Value = EditDate Application.EnableEvents = True End If 

每当我尝试在其中一个单元格中进行更改时,我正在收到一个对象所需的错误。 我怎样才能做到这一点?

我认为你的问题没有声明RowNumColNum任何东西。 你希望这些都是一些数字type (我在这个例子中使用Long )。

就像PatricK所说, ActiveWorksheet应该是ActiveSheet 。 你也有一些其他的语法错误,但只是看看我的代码为你想要的工作版本。

我不知道你把这个代码。 我会将Worksheet对象中的代码作为Change Event来托pipe。

工作代码:

 Sub Worksheet_Change(ByVal Target As Range) Dim EditDate As Date Dim RowNum As Long Dim ColNum As Long RowNum = ActiveCell.Row ColNum = ActiveCell.Column If ColNum = 11 Or ColNum = 13 Or ColNum = 19 Or ColNum = 20 Or ColNum = 21 Or ColNum = 22 _ Or ColNum = 23 Or ColNum = 24 Then Application.EnableEvents = False EditDate = Format(Now(), "d/m/yyyy hh:mm") ActiveSheet.Range("Y" & RowNum).Value = EditDate Application.EnableEvents = True End If End Sub 

你应该使用ActiveSheet.Range("Y," & RowNum).Value = EditDate ,而不是ActiveWorksheet