标签:菜单 eve 日期 http 对话框 round 文件格式 false 问题:
一、with语句
演示宏录制单元格格式设置,讲解with语句;对照单元格字体设置、对齐设置等菜单与录制的宏代码。
二、vba事件问题导入--高亮显示案例
问题1:结合文件“DEMO-1-从格式设置说起-(with)语句”描述需求:当表格很大时,希望点到某格时,该行高亮显示,同时之前其他行的高亮显示消失。
解决方案1:录制宏完成代码:(1)让本表不亮 (2)让某行高亮
新问题:每次操作都要运行宏,很麻烦。目前为止运行宏有两种方式:(1)主动选择宏运行;(2)设置按钮关联宏,主动点击
应用vba事件解决:
1、双击vba sheet1,在右上方选择worksheet,selectionchange,将上述代码贴入;
2、也可将代码留于模块中,在上述位置 "call 宏名"
三、自动筛选案例
问题描述:根据range(“I2”)内容筛选并将筛选内容放置于右侧区域
解决方案:宏录制代码后(1)设置按钮关联宏 (2)用事件"change"
注:(1)事件“change”意味着表中任意变化都会触发事件;
(2)由于(1),容易引起死循环,因为宏中代码会引起表中变化,继而再次触发事件。因此在任何事件的宏中,应
先“application.EnableEvents = False”,结束前“application.EnableEvents = true”
四、自动更新案例
问题描述:表“自动更新”中,用数据透视表功能统计各月各地区的销售统计数据,但若源数据发生变化,透视表需点“刷新”,若透视表很多,会较麻烦。
演示透视表:(1)构建数据透视表:插入-->数据透视表-->新工作表,选择订购日期、所属区域、金额;
(2)任选订购日期单元格,数据透视表工具-->“将所选内容分组”-->“步长”选“月”
(3)观察源数据变化后,透视表未变化,点击数据-->全部刷新后,透视表更新
解决方案:录制全部刷新的宏,选择数据透视表所在worksheet的activate事件。
五、工作薄事件
概念引入:观察vba中thisworkbook(代表本工作薄文件)的事件,演示“open”事件,mgsbox “向您请安!” 讲解文件保存格式
问题描述:文件一旦保存后,无法还原之前版本,因此对于极重要的文件,希望(1)在保存之前自动将修改前版本备份到指定目录,(2)且文件以当时时间命名。
解决步骤:(1)确定用thisworkbook内的beforesave事件;
(2)演示now()函数,在工作界面设置单元格格式-->自定义,设置为"yyyymmddhhmmss",并可用text()转化数据类型
(3)测试用宏将当前时间写入单元格:range("a1")=format(now(),"yyyymmddhhmmss")
(4)演示用宏将当前文件的副本另存到指定目录:ThisWorkbook.SaveCopyAs "d:\data\1.xls",
注意:(i)saveas会使得当前工作文件变为1.xls,因此需用savecopyas(ii)保存格式需与当前文件格式一致
(5)将"d:\data\1.xls"中的1改为变量"d:\data\"&format(now(),"yyyymmddhhmmss")&".xls"
六、练习题:
问题:为作业表制作密码验证。
要求:(1)打开文件时只显示登录界面表隐藏其他所有表,弹出对话框输入密码。输入123则显示张三的三张表,输入456则显示李四的三张表。
(2)关闭文件时将除“登录”表外的其他表全部隐藏
演示:录制宏,隐藏工作表的代码 Sheets(i).Visible = False
附录:常见工作表事件及工作薄事件
注:还有控件等都有事件
标签:菜单 eve 日期 http 对话框 round 文件格式 false 问题:
原文地址:https://www.cnblogs.com/y2000zhang/p/13586838.html