分享

VBA事件与典型应用案例

 Excel实用知识 2021-11-21

with语句的使用

复制代码
Sub test()
Sheet2.Range('a1') = 6
Sheet2.Range('a2') = 16
Sheet2.Range('a3') = 26
'等效
With Sheets
    .Range('a1') = 6
    .Range('a2') = 16
    .Range('a3') = 26
End With
End Sub
复制代码

设置单元格格式

Sub test() 
Range('a1').Font.Size = 18 #字体大小为18号
End Sub

改单元格背景色

Sub gys()
Cells.Interior.Pattern = xlNone  #先清空所有单元格颜色
Selection.EntireRow.Interior.Color = 65535
End Sub

什么是事件?发生了什么事 自动的去执行这个事 自动运行宏

事件是在每个表里的worksheet :三个常用事件介绍

  1)事件selectionchange

   2)事件change

 代码解释

复制代码
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False #将事件关闭
Range('l1:q10000').ClearContents
Range('a1:f232').AutoFilter Field:=4, Criteria1:=Range('i2')
Range('a1:f232').Copy Range('l1')
Range('a1:f232').AutoFilter
Application.EnableEvents = True 将事件开启
End Sub
复制代码

   3)事件activate     

  自动刷新举例说明

  代码  

Private Sub Worksheet_Activate()
ActiveWorkbook.RefreshAll
End Sub

  workbook 中的事件   beforesave

  自动备份重要文件

  excel中=now()”得到当前时间 然后用 “text('','yyyymmddhhmmss')”更改格式

  在vba中是

Sub ss()
Range('a1') = Format(Now(), 'yyyymmddhh')
End Sub

   当前工作簿 可以是 activeworkbook 也可以是 thisworkbok。用下面的方法去保存备份有个问题 就是 执行后 当前的文件编程了1.xlsx 不是你要操作的文件了

 但是用thisworkbook.savecopyas “d:\data\1.xlsx” 就能避免这样的问题 保存后 还是要操作的文件

Sub ss()
ThisWorkbook.SaveAs 'd:\data\1.xlsx'    
End Sub

  数据备份

 

 

 

 

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多