EXCEL-VBA(宏)工作薄事件大全

2021-01-11 事事樂分享

Activate 事件

激活工作簿、工作表、圖表工作表或嵌入式圖表時發生此事件。

新建窗口時不發生此事件。

切換兩個顯示同一工作簿的窗口時,將發生 WindowActivate 事件,但不發生工作簿的 Activate 事件。

示例

此示例在工作表被激活時對區域 A1:A10 排序。

Private Sub Worksheet_Activate()

Range("a1:a10").Sort Key1:=Range("a1"), Order:=xlAscending

End Sub

AddinInstall 事件

當工作簿作為加載宏安裝時,發生此事件

當工作簿作為加載宏安裝時,下面的示例將一個控制項添加到常用工具欄中。

Private Sub Workbook_AddinInstall()

With Application.Commandbars("Standard").Controls.Add

.Caption = "加載項的菜單項"

.OnAction = "'ThisAddin.xls'!Amacro"

End With End Sub

End Sub

AddinUninstall 事件

當工作簿作為加載宏卸載時,發生此事件。

說明

卸載加載宏時,該加載宏並不自動關閉。

示例

當工作簿作為加載宏卸載時,本示例將 Microsoft Excel 最小化。

Private Sub Workbook_AddinUninstall()

Application.WindowState = xlMinimized

End Sub

AfterXmlExport 事件

在 Microsoft Excel 保存或導出指定工作簿中的 XML 數據之前發生此事件。

語法

表達式.AfterXmlExport(Map, Url, Result)

表達式 一個代表 Workbook 對象的變量。

參數

說明

XlXmlExportResult 可以是下列 XlXmlExportResult 常量之一:

xlXmlExportSuccess。XML 數據文件成功導出。

xlXmlExportValidationFailed。XML 數據文件的內容不符合指定的架構映射。

XmlMap 對象

代表已添加到工作簿的 XML 映射。

注釋 除了將文件保存為 XML 電子表格格式,其他的 XML 功能只能在 Microsoft Office Professional Edition 2003 和 Microsoft Office Excel 2003中使用。

使用 XmlMaps集合的 Add 方法可將 XML 映射添加到工作簿。

導入和導出 XML 數據

使用 Import方法可將 XML 數據從 XML 數據文件導入到映射到指定的 XmlMap 的單元格中。ImportXml 方法為 String 變量導入 XML 數據。

使用 Export方法可將數據從映射到指定的 XmlMap 的單元格中導出。ExportXml 方法將數據導出到 String 變量。

AfterXmlImport 事件

在刷新現有的 XML 數據連接或將新的 XML 數據導入到指定的 Microsoft Excel 工作簿之後,發生此事件。

語法

表達式.AfterXmlImport(Map, IsRefresh, Result)

表達式 一個代表 Workbook 對象的變量。

參數

說明

XlXmlImportResult 可為以下 XlXmlImportResult 常量之一:

xlXmlImportElementsTruncated。由於指定的 XML 數據文件對於工作表來說太大,因此其內容已被截斷。

xlXmlImportSuccess。XML 數據文件成功導入。

xlXmlImportValidationFailed。XML 數據文件的內容不符合指定的架構映射。

BeforeClose 事件

在關閉工作簿之前,先產生此事件。如果該工作簿已經更改過,則本事件在詢問用戶是否保存更改之前產生。

語法

表達式.BeforeClose(Cancel)

示例

本示例將 BeforeClose 事件的響應設置為保存工作簿的任何更改。

Private Sub Workbook_BeforeClose(Cancel as Boolean)

If Me.Saved = False Then Me.Save

'Saved屬性,如果指定工作簿從上次保存至今未發生過更改,則該屬性值為 True,否則為False

End Sub

BeforePrint 事件

在列印指定工作簿(或者其中的任何內容)之前,發生此事件。

語法

表達式.BeforePrint(Cancel)

表達式一個代表 Workbook 對象的變量。

參數

示例

本示例在列印之前對活動工作簿的所有工作表重新計算。

Private Sub Workbook_BeforePrint(Cancel As Boolean)

For Each wk in Worksheets

wk.Calculate

Next

End Sub

BeforeSave 事件

保存工作簿之前發生此事件。

語法

表達式.BeforeSave(SaveAsUI, Cancel)

表達式 一個代表 Workbook 對象的變量。

參數

示例

本示例在保存工作簿之前詢問用戶是否保存。

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel as Boolean)

a = MsgBox("是否要保存工作簿?", vbYesNo)

If a = vbNo Then Cancel = True

End Sub

BeforeXmlExport 事件

在 Microsoft Excel 保存或導出指定工作簿中的 XML 數據之前發生此事件。

語法

表達式.BeforeXmlExport(Map, Url, Cancel)

表達式 一個代表 Workbook 對象的變量。

參數

BeforeXmlImport 事件

在刷新現有的 XML 數據連接或將新的 XML 數據導入到指定的 Microsoft Excel 工作簿之前,發生此事件。

語法

表達式.BeforeXmlImport(Map, Url, IsRefresh, Cancel)

表達式 一個代表 Workbook 對象的變量。

參數

Deactivate 事件

圖表、工作表或工作簿被停用時發生此事件。

語法

表達式.Deactivate

表達式 一個代表 Workbook 對象的變量。

示例

此示例在工作簿被停用時對所有打開的窗口進行排列。

Private Sub Workbook_Deactivate()

Application.Windows.Arrange xlArrangeStyleTiled

End Sub

NewSheet 事件

當在工作簿中新建工作表時發生此事件。

語法

表達式.NewSheet(Sh)

表達式一個代表 Workbook 對象的變量。

參數

示例

本示例將新建的工作表移到工作簿的末尾。

Private Sub Workbook_NewSheet(ByVal Sh as Object)

Sh.Move After:= Sheets(Sheets.Count)

End Sub

Open 事件

打開工作簿時,發生此事件。

語法

表達式.Open

表達式返回 Workbook 對象的表達式。

示例

每次打開工作簿時,本示例都最大化 Microsoft Excel 窗口

Private Sub Workbook_Open()

Application.WindowState = xlMaximized

End Sub

PivotTableCloseConnection 事件

數據透視表關閉與其數據源的連接後發生此事件。

語法

表達式.PivotTableCloseConnection(Target)

表達式 一個代表 Workbook 對象的變量。

參數

示例

本示例顯示一則消息,說明數據透視表與其數據源的連接已經關閉。本示例假定您已在類模塊中聲明了帶有事件的 Workbook類型的對象。

Private Sub ConnectionApp_PivotTableCloseConnection(ByVal Target As PivotTable)

MsgBox "數據透視表連接已關閉"

End Sub

PivotTableOpenConnection 事件

數據透視表打開與其數據源的連接後發生此事件。

語法

表達式.PivotTableOpenConnection(Target)

表達式 一個代表 Workbook 對象的變量。

參數

示例

本示例顯示一則消息,說明數據透視表與其數據源的連接已經打開。本示例假定您已在類模塊中聲明了帶有事件的 Workbook類型的對象。

Private Sub ConnectionApp_PivotTableOpenConnection(ByVal Target As PivotTable)

MsgBox "數據透視表連接已打開"

End Sub

RowsetComplete 事件

如果用戶在 OLAP 數據透視表上深化記錄集或調用行集操作,則會引發此事件。

語法

表達式.RowsetComplete(Description, Sheet, Success)

表達式一個代表 Workbook 對象的變量。

參數

說明

由於記錄集是以異步方式創建的,所以此事件允許自動確定已在何時完成操作。此外,由於記錄集是在單獨的工作表上創建的,所以需要將此事件置於工作簿級別上。

SheetActivate 事件

當激活任何工作表時發生此事件。

語法

表達式.SheetActivate(Sh )

表達式 一個返回 Workbook 對象的表達式。

參數

示例

本示例顯示被激活的每個工作表的名稱。

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

MsgBox Sh.Name

End Sub

SheetBeforeDoubleClick 事件

當雙擊任何工作表時發生此事件,此事件先於默認的雙擊操作發生。

語法

表達式.SheetBeforeDoubleClick(Sh, Target, Cancel)

表達式 一個返回 Workbook 對象的表達式。

參數

說明

圖表工作表中不發生此事件。

示例

本示例禁用默認的雙擊操作。

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, _

ByVal Target As Range, ByVal Cancel As Boolean)

Cancel = True

End Sub

SheetBeforeRightClick 事件

右鍵單擊任一工作表時發生此事件,此事件先於默認的右鍵單擊操作。

語法

表達式.SheetBeforeRightClick(Sh, Target, Cancel)

表達式 一個返回 Workbook 對象的表達式。

參數

說明

圖表工作表中不發生此事件。

示例

本示例禁用默認的右鍵單擊操作。

Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _

ByVal Target As Range, ByVal Cancel As Boolean)

Cancel = True

End Sub

SheetCalculate 事件

在重新計算工作表時或在圖表上繪製更改的數據之後發生此事件。

語法

表達式.SheetCalculate(Sh, )

表達式一個返回 Workbook 對象的表達式。

參數

示例

本示例在計算工作簿中的任何工作表時,對第一張工作表的 A1:A100 區域進行排序。

Private Sub Workbook_SheetCalculate(ByVal Sh As Object)

With Worksheets(1)

.Range("a1:a100").Sort Key1:=.Range("a1")

End With

End Sub

SheetChange 事件

當用戶或外部連結更改了任何工作表中的單元格時發生此事件。

語法

表達式.SheetChange(Sh, Target)

表達式 一個返回 Workbook 對象的表達式。

參數

說明

圖表工作表中不發生此事件。

示例

本示例在任何工作表發生更改時運行。

Private Sub Workbook_SheetChange(ByVal Sh As Object, _

ByVal Source As Range)

' 更改工作表時運行

End Sub

SheetDeactivate 事件

當任何工作表被停用時發生此事件。

語法

表達式.SheetDeactivate(Sh, )

表達式一個返回 Workbook 對象的表達式。

參數

示例

本示例顯示每個被停用的工作表的名稱。

Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)

MsgBox Sh.Name

End Sub

SheetFollowHyperlink 事件

單擊 Microsoft Excel 中的任何超連結時發生此事件

語法

表達式.SheetFollowHyperlink(Sh, Target)

表達式一個返回 Workbook 對象的表達式。

參數

Worksheet 對象。代表一個工作表

Worksheet對象是 Worksheets 集合的成員。Worksheets 集合包含某個工作簿中所有的 Worksheet 對象。

Worksheet對象也是 Sheets 集合的成員。Sheets 集合包含工作簿中所有的工作表(圖表工作表和工作表)。

Hyperlink 對象。代表一個超連結。

Hyperlink對象是 Hyperlinks 集合的成員。

使用 Hyperlink屬性可返回某個形狀的超連結(一個形狀只能有一個超連結)。下例激活形狀一的超連結。

Worksheets(1).Shapes(1).Hyperlink.Follow NewWindow:=True

區域或工作表可以有多個超連結。使用 Hyperlinks(index) 可返回單個 Hyperlink對象,其中 index 是超連結編號。下例激活 A1:B2 區域中的第二個超連結。

Worksheets(1).Range("A1:B2").Hyperlinks(2).Follow

SheetPivotTableUpdate 事件

在數據透視表的工作表更新之後發生此事件。

語法

表達式.SheetPivotTableUpdate(Sh, Target)

表達式一個返回 Workbook 對象的表達式。

參數

示例

本示例顯示一則消息,說明數據透視表的工作表已經更新。本示例假定您已在類模塊中聲明了帶有事件且類型為 Application或 Workbook 的對象。

Private Sub ConnectionApp_SheetPivotTableUpdate(ByVal shOne As Object, Target As PivotTable)

MsgBox "數據透視表連接已更新"

End Sub

SheetSelectionChange 事件

任一工作表上的選定區域發生更改時,將發生此事件(但圖表工作表上的選定區域發生改變時,不會發生此事件)。

語法

表達式.SheetSelectionChange(Sh, Target)

表達式一個返回 Workbook 對象的表達式。

參數

示例

此示例在狀態欄上顯示選定區域所在工作表的名稱及選定區域的地址。

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _

ByVal Target As Excel.Range)

Application.StatusBar = Sh.Name & ":" & Target.Address

End Sub

Sync 事件

當作為「文檔工作區」一部分的工作表的本地副本與伺服器上的副本進行同步時,發生此事件。

語法

表達式.Sync(SyncEventType)

表達式返回 Workbook 對象的表達式。

參數

示例

如果「文檔工作區」中的工作表同步失敗,則下例顯示一條消息。

Private Sub Worksheet_Sync(ByVal SyncEventType As Office.MsoSyncEventType)

If SyncEventType = msoSyncEventDownloadFailed Or _

SyncEventType = msoSyncEventUploadFailed Then

MsgBox "文檔同步失敗。" & _

"請與管理員聯繫 " & vbCrLf & _

"或者稍後再試。"

End If

End Sub

WindowActivate 事件

工作簿窗口被激活時,將發生此事件。

語法

表達式.WindowActivate(Wn)

表達式一個代表 Workbook 對象的變量。

參數

示例

此示例在任何工作簿窗口被激活時將該窗口最大化。

Private Sub Workbook_WindowActivate(ByVal Wn As Excel.Window)

Wn.WindowState = xlMaximized

End Sub

WindowDeactivate 事件

任何工作簿窗口被停用時將發生此事件。

語法

表達式.WindowDeactivate(Wn)

表達式一個代表 Workbook 對象的變量。

參數

WindowResize 事件

任何工作簿窗口調整大小時將發生此事件。

語法

表達式.WindowResize(Wn)

表達式一個代表 Workbook 對象的變量。

參數

示例

此示例在任何工作簿窗口調整大小時運行。

Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window)

Application.StatusBar = Wn.Caption & " resized"

End Sub

相關焦點

  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • 共享工作薄竟能快速匯總多個excel文件,這個操作你見過嗎
    Hello,大家好,不知道大家在工作中有沒有遇到過數據的收集與匯總的工作呢?過程重複且枯燥,常常為它耗費了很多時間。今天就跟大家分享一種簡單數據匯總的方法,不用vba,也不用power query,只需要簡單的設置,設置完成後,點點滑鼠excel就會幫你自動匯總數據,下面就讓我們來一起操作下吧一、設置模板,添加功能1.設置模板首先我們需要自己設置一個數據模板來供人填寫,模板如何設置需要根據自己想要匯總的項目來設置
  • 微軟Excel VBA宏的介紹及如何錄製宏
    宏是系列 Excel命令和指令組合在起,形成了個任務,以自動執行包含多個命令和指令的任務。可以極大提升Excel的效率。一,什麼是宏宏就是用VBA代碼保存下來的程序。宏的基本作就是:減少重複性的操作Excel宏是系列操作步驟的集合,如在單元格中輸數據,複製A3的數據到B4,對C1:D3求和等,這些操作步驟有簡單有複雜。當一些操作步驟需要不斷重複時,我們就要考慮錄製宏。現excel版本採的宏語是VBA(Visual Basic for Applications)。
  • 比較Excel中的宏和VBA
    在Excel中可以錄製一個宏來快速製作學生成績的抬頭,我們簡單回顧一下這個宏是如何錄製的:1) 首先點擊「開發工具」選項卡;2) 點擊「使用相對引用」;3) 在錄製開始前選中第一行的抬頭;4) 點擊「錄製宏」;5) 複製第一行;6) 隔兩行,也就是在第3行右鍵滑鼠,選中「插入複製的單元格」;7) 點擊「
  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。4.輸入如圖所示的代碼:5.保存文件,按下F5執行,找到我們編輯的這個宏,【計算銷售額】,然後點擊【運行】寫在末尾——總結一下WPS用起來還是十分簡單的,後面也會出更多的EXCEL系列教程和其他知識分享。
  • excel中2000行數據以行排序,你需要多長時間
    Hello,大家好,今天跟大家分享下我們如何使用錄製宏批量的按照行來對數據排序,這個之前發過視頻,但是很多粉絲表示沒看懂,今天就來詳細的介紹下這種方法一、宏是什麼宏本質上就是我們所說的vba代碼,錄製宏就是將我們的操作記錄下來,將其編譯為vba代碼,當我下次需要重複操作的時候只需要運行宏
  • 工作中為什麼有必要學點VBA
    作者 l 濤哥來源 l 三壽的腦細胞授權轉載 l itker011001寫在前面VBA全稱是指Visual Basic for Applications,它是一個來自Microsoft的事件驅動的程式語言
  • 用excel製作文件管理器,所有版本皆可使用
    Hello,大家好,之前跟大家分享了使用excel中的power query功能製作一個文件管理器,但是很多分析反應自己的excel版本不夠高,無法使用,今天就跟大家分享如何使用宏表函數製作文件管理器,他也是可以實現文件刷新的,這個的操作也不難,下面就讓我們來看下他是如何設置的一、什麼是宏表函數以及FILES函數
  • 你知道excel的宏可以事半功倍提升工作效率嗎
    工作中經常使用excel的同學會發現,如果說每天對對同樣的工作內容,表格的處理方法也是一樣的。有可能你還是會繼續重複「昨天的故事」,一次又一次的重複操作。這樣難免會有些許枯燥,這時候,如果你本身會excel的宏。
  • Excel表格的宏操作教程
    諮詢學歷提升請加小編個人微信號:jzs0598 ❸ 長按右側二維碼,關注CAD吧excel表格的宏操作教程:  宏操作步驟1:為了深入淺出,小編操作了一個最簡單的實操過程,希望大家不要。  宏操作步驟2:其實,不用怕,我們要用到「宏」來幫助我們。首先,我們要錄製新的宏,簡單而言就是把我們要重複操作的步驟錄製起來哦! 方法是:點擊工具——宏——錄製新的宏。點擊後,你就開始進入宏的錄製了,把你步驟一步步錄起來!
  • Excel VBA 不可一世的宏中,基本數據構成你知道多少
    在上一期我們說到VBA的基本組織結構,那麼我們今天就來說說組成這些VBA代碼的磚瓦是由哪幾部分構成的,也就是說vba的處理數據的磚瓦。2.變量,這一次是很好理解,excel在處理的時候,他是可以按照一定規則去變化的。其實變量我們是看不到他變化,他的變化在計算機的內存之中。另外需要說明的一點是,變量的數據種類有很多。如下圖:我們在使用變量的時候,可以給變量定義一下他的數據類型,這樣的話我們程序執行的速度會快很多的,效率也會提升很多。
  • EXCEL之VBA(宏)指定快捷鍵及添加到快速訪問欄的方法
    注意的時,如果添加原宏要對所有打開的文檔有效,需要把宏保存到個人宏工作薄。要讓宏可以在其它工作薄運行並完成指定操作,首先需要創建一個人宏工作薄,以EXCEL2007為例,可以通過點擊菜單欄「視圖」》宏》錄製宏,選擇到個人工作薄創建個人宏工作薄。
  • 你天天用的excel也可以用來畫畫,這個工具3分鐘搞定!
    最近小妞迷上了一位77歲日本老大爺,他從畫將近20年,讓我敬佩的是他畫畫的工具,居然是我們每天都在用的excel,這幾天小妞打算寫一篇老大爺的傳記給大家學習一下滴,記得隨時過來看看啦。今天就針對excel主題,告訴大家這個用excel就能畫畫的技能,這個說出都很有面兒有木有。
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • excel中重複製作圖表如何錄製宏
    excel中重複製作圖表如何錄製宏在工作中執行多次重複操作,可以使用宏功能簡化操作,提高工作效率,宏是一系列存儲在VBA模塊中的命令和函數,一旦編輯就可以隨時調用減少執行重複操作的時間,現在簡單的用圖文描述一下錄製宏操作流程這邊給大家以製作圖表設置表樣式進行錄製宏的具體操作方法
  • excel的宏怎麼調用,怎麼運用?
    因為我們一般也不用,所以在excel中宏這個功能一般也不顯示出來,我們先把它給顯示出來,打開一個excel,點擊左上角的文件,在文件中找到選項,我們點擊選項,找到自定義功能區,並且找到開發工具把它添加到主選項卡中,把開發工具前面的對勾選項。
  • Excel VBA之日期篇 4.2重要日程提醒 讓你不再手忙腳亂
    比方說3天之後你要準備一個重要的事情要做,或者是重要的會議,或者是一次浪漫的巴黎旅行(PS:最近疫情嚴重,還是不要去外國比較好),或者和伴侶的一次重要約會,這些都是需要提前做好準備的事情,但是你平時工作比較忙,你可能就會忘記要準備這些事情,到真正要去開會,旅行的時候,你就會手忙腳亂的,毫無頭緒,今天就和大家分享一個簡易的excel事件提醒功能,這樣就可以提前通知你做好準備,從而不再手忙腳亂了
  • 學習Excel VBA有什麼用處?
    excel有一個宏的概念,就是用戶使用宏錄製器錄下的一組操作。通過宏,實現把重複的工作簡單化。那麼我們怎麼錄製宏呢?錄製宏需要哪些步驟呢?我們一一解釋說明。第一步:錄製前的準備1、選中A1單元格,即工資表表頭所在行的第一個單元格2、依次執行工具--宏--錄製新宏菜單命令,打開錄製新宏對話框。
  • 隨心所欲讓excel做任何事——編寫宏
    【excel是什麼?】用excel表格來做計算,現在可以說是非常普遍了,其功能也是十分強大的。但是在我們實際應用的時候,不免會出現現有功能無法滿足我們的情況,比如下面的例子。在目前excel中則無法實現,幸運的是該產品針對特定需求提供了宏任務來解決【操作步驟】首先我們找到查看宏的地方:【視圖】-> 【宏】->【查看宏】輸入名稱後,點擊【創建】進入代碼界面開始編寫代碼,我們的代碼寫在
  • 用EXCEL製作一個簡單的五子棋遊戲
    今天,我們教愛學習的小朋友用excel製作一款非常簡單的雙人五子棋遊戲。其中涉及到的知識有:excel基礎操作vba基礎知識首先看看最終效果圖:首先我們製作棋盤因為excel的行列單位不一致,我們就用眼睛來調整行和列的大小,讓單元格差不多為正方形即可。然後我們為棋盤附上看起來不是很刺眼的黃色做為底色。最終我們就獲得了一個正式的棋盤了。