微软公司Office软件在商业办公领域一贯霸占着主流和主导地位,个中Excel在数据处理和剖析领域有着强大的影响力,大部分人在经历几年职场历练后可以闇练的利用Excel函数和透视表功能,基本可以轻松完成绝大多数事情和任务。但实际上Office的强大和独特之处还在于VBA,由于VBA能够胜任好多个性化二次开拓,减少重复机器劳动从而实现办公自动化,开拓效率高且开拓周期短,尤其对付Excel重度利用者来说会了VBA切实其实便是为虎傅翼啊!
!
!
(本人外语专业毕业,机缘巧合爱上编程,自学道路曲弯波折,痛并快乐!
)在这里总结一下自学VBA碰着的难点和重点,分享码过的代码和要点总结,希望能够给初学者一点启迪和鼓励,同时乐意结交更多大神互换有助提升自己的水平。
打开Exel文件时有的小伙伴希望能够倒计时自动实行一个固界说务,毕竟除了通过窗体按钮触发任务外,这种倒计时自动触发功能也是非常故意思和实用的,那么本日就给大家先容一下如何通过VBA来编写打开文件后倒计时自动触发功能吧!
!
!
首先,VBA实现一个最大略的功能-打开文件后立即弹出窗口问好,如下:

在VBE环境下找到ThisWorkbook,然后选择Open状态下把Messagbox写入即可,把稳保存好启用宏的文件,下面试试再次打开文件会发生什么?
效果如下:
看到打开文件立马弹出了提示窗口,给我们来跪安了!
!
再次,进入本日的正题-如何开机后自动触发一个任务:
这里设置一个大略的触发任务作为例子,便是找到指定的Sheet页天生一段笔墨即可。实现这个过程紧张分两块:第一块把核心触发任务写好,第二块把倒计时触发命令也写好调入核心任务即可,如下:
同样绑定到开机事宜中:
效果如下:
打开该文件后5秒自动触发了任务,很听话!
!
!
末了,再增加点繁芜度-开机后先弹出提示窗口,确定后倒计时再实行任务:
详细案例便是找到指定Sheet录入最近7天日期数据,如下:
效果如下:
先弹出提示窗口,确定后倒计时实行任务:
确定后天生日期数据如下:
代码汇总如下:
Function GetDataDelete() '删除指定Sheet中的所有数据自定义函数Application.ScreenUpdating = FalseThisWorkbook.ActiveSheet.Select '选定激活的Sheet Cells.Delete '把稳Delete删除所有数据包括其格式Application.ScreenUpdating = FalseEnd FunctionSub Mission1() '核心触发任务天生一段笔墨Sheets("START").Select GetDataDelete '调用删除自定义函数 Range("B8") = "人生不是赛场,梦想不容退场!!" Columns(2).ColumnWidth = 50 '设定列宽 With Range("B8") .Interior.ColorIndex = 36 '设定单元格背景颜色 .Borders.Weight = xlMedium '设置边框粗细程度 .Font.Name = "微软雅黑" '设定字体格式 .HorizontalAlignment = xlCenter '设定单元格内字符居中显示 .Font.FontStyle = "加粗" '设定字体加粗 .Font.ColorIndex = 3 '设定字体颜色 End WithEnd SubSub TimerRunnerMission1() '倒计时自动实行代码Application.ScreenUpdating = TrueDim SecondTime As Date '定义一个日期SecondTime = Now + TimeValue("00:00:05") '开机算过几秒开始实行代码 Application.OnTime SecondTime, "Mission1"ThisWorkbook.SaveApplication.ScreenUpdating = FalseEnd SubSub Mission2() '核心触发任务获取最近7天日期数据Application.ScreenUpdating = TrueSheets("SHOW").SelectGetDataDelete '调用删除自定义函数Range("A1") = "序号"Range("B1") = "日期"Range("C1") = "星期"Range("D1") = "月份"Dim i As LongFor i = 1 To 7 Step 1 Range("A" & i + 1) = i '遍历循环得到序号 Range("B" & i + 1) = CDate(Format(Now, "yyyy-mm-dd")) + i - 1 '遍历循环得到日期数据,CDate 函数可把一个合法的日期和韶光表达式转换为Date类型 Range("C" & i + 1) = Weekday(Range("B" & i + 1), 2) '遍历循环得到星期几 Range("D" & i + 1) = Month(Range("B" & i + 1)) '遍历循环得到月份Next iApplication.ScreenUpdating = FalseEnd SubSub TimerRunnerMission2() '倒计时自动实行代码Application.ScreenUpdating = TrueDim FirstTime As Date '定义一个日期FirstTime = Now + TimeValue("00:00:05") '开机算过几秒开始实行代码 Dim i As Integer i = MsgBox("确定5秒后实行命令2?", 1, "确定对话框") If i = 1 Then Application.OnTime FirstTime, "Mission2" Else: Exit Sub End IfThisWorkbook.SaveApplication.ScreenUpdating = FalseEnd Sub
有兴趣的小伙伴们赶紧自己也试一下吧,这样每次打开文件就能够自动实现一些自动化任务了哇!
!
!
END
我为大家,人人为我!
!
欢迎大家关注,点赞和转发!
!
!
~~人生不是赛场,梦想不容退场~~不断努力学习蜕变出一个更好的自己,不断分享学习路上的收成和感悟帮助他人造诣自己!
!
!