使用VBA生成满足条件的日期

时间:2024-10-12 00:43:27

1、VBA程序编写思路:在改变单元格的内容时(或者双击键入),那么将要触发VBA程序运行,此时就需要使用到“Worksheet.Change”事件。

使用VBA生成满足条件的日期

2、打开Excel表格,在工作表标签“Sheet1”上面单击右键,选择“查看代码”。

使用VBA生成满足条件的日期

3、在VBA编辑器的Sheet1代码框里面输入以下程序代码:Private Sub Worksheet_Change(ByVal T锾攒揉敫arget As Range)Dim ro, co, boOn Error Resume Next '忽略运行过程中可能出现的错误Application.EnableEvents = False '开启代码只执行一次Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表ro = Target.Row '获取改变的单元格的行号co = Target.Column '获取改变的单元格的列号bo = IsNumeric(Target) '改变的单元格是否为数值If Target <> "" And co <= 3 And bo = True Then '如果改变的单元格不为空白,在A-C列,且是数值,则mysheet1.Cells(ro, co + 3).NumberFormatLocal = "yyyy-mm-dd hh:mm:ss" '设置单元格的时间格式mysheet1.Cells(ro, co + 3) = Now() '把时间写入单元格End IfIf co <= 3 And (Target = "" Or bo = False) Then '如果改变的单元格在A-C列且为空白或者不是数值,则mysheet1.Cells(ro, co + 3) = "" '清空对应单元格的日期End IfApplication.EnableEvents = True '恢复代码只执行一次End Sub

使用VBA生成满足条件的日期

4、回到Sheet1的工作表界面,在A-C列的单元格里面输入数据时,将会在D-F列对应的单元格记录日期和时间。

使用VBA生成满足条件的日期

5、VBA程序注意事项:(1)使用“Worksheet.Change”事件时,每改筐毙险裆变一个单元格(双击键入)可能会执行多关骇脘骱次,所以会在代码里边引入“Application.EnableEvents = False”,以执行一次。(2)单元格的时间格式可以事先在工作表上面设置好,也可以在程序里面进行设置。如果单元格不设置成时间格式,其显示的结果可能是一串数字。(3)使用“IsNumeric”判断单元格的内容是否为数字时,其空白单元格也会被默认成是数字,此时应当把它排除掉。

使用VBA生成满足条件的日期
© 手抄报圈