如何使用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
每当我尝试在其中一个单元格中进行更改时,我正在收到一个对象所需的错误。 我怎样才能做到这一点?
我认为你的问题没有声明RowNum
或ColNum
任何东西。 你希望这些都是一些数字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