分享

EXCEL表格自动化设置 - EXCEL VBA(6)

 拾叁亿人 2023-04-16 发布于云南

EXCEL单元格公式具有“响应式”特征,即表格中任一个单元格数据发生变化后,所有设置了公式的单元格数据也随之变化。也就是说,只有手动操作单元格后,才能激活其它公式单元格的响应。

例如,EXCEL函数NOW返回年、月、日以及小时和分钟,如4/5/2023 8:03。如果表格中单元格没有变化,则显示时间不变,只有某个单元格发生变化了,录入函数NOW的单元格才会更新时间。

当要求按时、或按其它条件自动触发公式单元格的响应,则需要用EXCEL VBA设定设定条件自动触发句柄来实现。

一、EXCEL自动化设置事件驱动事件

1、用VBA的Application.OnTime设定重复运行操作

VBA的Application.OnTime事件指定一个过程在将来特定时间开始运行,是VBA非常重要的定时触发事件,需要按时自动管理EXCEL表格时就会用到。

为此,编写事件【WriteRandomNumber】代码如下:

Sub WriteRandomNumber()Dim sTime As StringsTime = '00:00:' & Sheet1.Range('C4').ValueRandomize' 初始化随机数生成器Sheet1.Range('C3').Value = Int(Rnd * 100)' 生成0100 之间的随机数并将其写入 A1 单元格Application.OnTime Now + TimeValue(sTime), 'WriteRandomNumber', , True' 延迟C4指定秒数重复执行 WriteRandomNumberEnd Sub

运行【WriteRandomNumber】事件,依次完成以下操作:

  • 在EXCEL表格sheet1单元格C4读取自动变化时间间隔(单位为秒);
  • 生成生成0 到 100 之间的随机数并将其写入 A1 单元格;
  • 延迟指定秒数重复运行事件WriteRandomNumber。

将【WriteRandomNumber】事件代码复制、粘贴到【模块1】编辑栏中,如图:

文章图片1

图1:复制、粘贴【WriteRandomNumber】事件代码到【模块1】编辑栏中

2、打开EXCEL文档时自动启动运行【WriteRandomNumber】事件代码

打开EXCEL文档事件编辑窗口

文章图片2

图2:鼠标双击资源管理器的【ThisWorkBoob】,在弹出文档事件窗口【通用】选项中选【文档事件】

文章图片3

图3:在弹出文档事件窗口【声明】选项中选事件【Open】

将代码【Call WriteRandomNumber】复制、粘贴到事件Workbook_Open中,

文章图片4

图4:文档打开时启动事件【Open】,运行事件【WriteRandomNumber】

打开文档时运行事件【WriteRandomNumber】,效果演示如下:

文章图片5

图5:文档打开时运行事件【WriteRandomNumber】,指定单元格中数字自动变化

3、EXCEL自动化设置实例

文章图片6

图6:文档打开时运行事件【WriteRandomNumber】,单元格C3按C4指定时长(秒)自动变化

当EXCEL表格中某一个单元格(C3)被按时驱动后,可以用这个被驱动单元格其它更多单元格。

【图6】中驱动顺序及内容如下:

数据驱动

文档打开后,事件【WriteRandomNumber】按单元格【C3】指定秒数驱动单元格【C4】,及定时生成随机数并赋值给单元格【C3】;

时间变量驱动

由于许多数据和时间相关,可以在数据驱动基础上设置时间驱动单元格。

文章图片7

图7:在单元格C7:C16设置不同时间变量

注:函数【DATEVALUE】计算1900年到现在天数

因为是按秒驱动,只能直观看到单元格【C16】中秒数的变化,60秒后单元格【C15】中分钟数就会自动变化,其它时间单元格类似。需要某些时间按特定时间自动变换或更新时,和相关时间单位单元格绑定即可。

空间变量驱动

统计数据不但常常和时间相关,也和空间相关,即所谓“时空”关联。

文章图片8

图8:在单元格C19:C21设置X、Y、Z变量

注:这里空间变量赋值为0-100间的整数,可以根据实际情况设置不同空间变量值

当一个表格设置了单元格自动变化功能后,该文档其它表格也可以绑定动态单元格,从而自动变换、更新。

文章图片9

图9:同一文档中不同表格数据互动效果

注:右边表格sheet1为数据驱动表格,左边表格sheet2单元格【A1:E10】为随机数。sheet1某个单元格按时变化后,也引起sheet2数据的变动

实现EXCEL自动化设置在项目演示、按时(按条件)提醒、自动报表等方面被广泛应用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多