首页 > Office专区 > Excel教程 >

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

来源:互联网 2023-02-20 17:49:09 409

如下表所示,在A-C列的单元格里边输入数值时,对应的D-F列记录当前的时间;如果输入的空白或不是数值,则对应的单元格变成空白。6m6办公区 - 实用经验教程分享!

使用VBA生成满足条件的日期6m6办公区 - 实用经验教程分享!

工具/原料

  • Windows 7
  • Excel 2010

方法/步骤

  • 1

    VBA程序编写思路:6m6办公区 - 实用经验教程分享!

    在改变单元格的内容时(或者双击键入),那么将要触发VBA程序运行,此时就需要使用到“Worksheet.Change”事件。6m6办公区 - 实用经验教程分享!

    使用VBA生成满足条件的日期6m6办公区 - 实用经验教程分享!

  • 1该信息未经许可获取自百度经验
  • 2

    打开Excel表格,在工作表标签“Sheet1”上面单击右键,选择“查看代码”。6m6办公区 - 实用经验教程分享!

    使用VBA生成满足条件的日期6m6办公区 - 实用经验教程分享!

  • 3

    在VBA编辑器的Sheet1代码框里面输入以下程序代码:6m6办公区 - 实用经验教程分享!

    Private Sub Worksheet_Change(ByVal Target As Range)6m6办公区 - 实用经验教程分享!

    Dim ro, co, bo6m6办公区 - 实用经验教程分享!

    On Error Resume Next '忽略运行过程中可能出现的错误6m6办公区 - 实用经验教程分享!

    Application.EnableEvents = False '开启代码只执行一次6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    Set mysheet1 = ThisWorkbook.Worksheets("Sheet1") '定义工作表6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    ro = Target.Row '获取改变的单元格的行号6m6办公区 - 实用经验教程分享!

    co = Target.Column '获取改变的单元格的列号6m6办公区 - 实用经验教程分享!

    bo = IsNumeric(Target) '改变的单元格是否为数值6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    If Target > "" And co = 3 And bo = True Then '如果改变的单元格不为空白,在A-C列,且是数值,则6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    mysheet1.Cells(ro, co 3).NumberFormatLocal = "yyyy-mm-dd hh:mm:ss" '设置单元格的时间格式6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    mysheet1.Cells(ro, co 3) = Now() '把时间写入单元格6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    End If6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    If co = 3 And (Target = "" Or bo = False) Then '如果改变的单元格在A-C列且为空白或者不是数值,则6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    mysheet1.Cells(ro, co 3) = "" '清空对应单元格的日期6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    End If6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    Application.EnableEvents = True '恢复代码只执行一次6m6办公区 - 实用经验教程分享!

    6m6办公区 - 实用经验教程分享!

    End Sub6m6办公区 - 实用经验教程分享!

    使用VBA生成满足条件的日期6m6办公区 - 实用经验教程分享!

  • 4

    回到Sheet1的工作表界面,在A-C列的单元格里面输入数据时,将会在D-F列对应的单元格记录日期和时间。6m6办公区 - 实用经验教程分享!

    使用VBA生成满足条件的日期6m6办公区 - 实用经验教程分享!

  • 5

    VBA程序注意事项:6m6办公区 - 实用经验教程分享!

    (1)使用“Worksheet.Change”事件时,每改变一个单元格(双击键入)可能会执行多次,所以会在代码里边引入“Application.EnableEvents = False”,以执行一次。6m6办公区 - 实用经验教程分享!

    (2)单元格的时间格式可以事先在工作表上面设置好,也可以在程序里面进行设置。如果单元格不设置成时间格式,其显示的结果可能是一串数字。6m6办公区 - 实用经验教程分享!

    (3)使用“IsNumeric”判断单元格的内容是否为数字时,其空白单元格也会被默认成是数字,此时应当把它排除掉。6m6办公区 - 实用经验教程分享!

    使用VBA生成满足条件的日期6m6办公区 - 实用经验教程分享!

  • 注意事项

    • 个人经验,仅供参考。

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!6m6办公区 - 实用经验教程分享!


    标签: excelVBA使用满足条件

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码