VBA事件與典型應用案例


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

  數據備份

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM