九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Excel VBA解讀(92):Workbook對(duì)象的Open事件和BeforeClose事件


本文詳細(xì)講解Workbook對(duì)象常用的兩個(gè)事件:Open事件和BeforeClose事件。

 

Workbook_Open事件

當(dāng)打開(kāi)工作簿時(shí)發(fā)生Workbook_Open事件。

 

ThisWorkbook代碼模塊中輸入下面的代碼,使工作簿打開(kāi)時(shí)彈出一個(gè)消息框:

Private Sub Workbook_Open()

   MsgBox '歡迎來(lái)到[完美Excel]微信公從號(hào)!'

End Sub

在打開(kāi)工作簿時(shí),彈出如圖1所示的消息框。


1

 

Workbook_BeforeClose事件

在關(guān)閉工作簿之前發(fā)生該事件。如果修改了工作簿但沒(méi)有保存修改,那么該事件發(fā)生在詢問(wèn)用戶保存修改之前。

 

其語(yǔ)法為:

Workbook_BeforeClose(Cancel As Boolean)

 

說(shuō)明:

  • 參數(shù)Cancel為布爾值,必需。事件發(fā)生時(shí)為False;如果事件過(guò)程將此參數(shù)設(shè)置為True,則停止關(guān)閉工作簿并且工作簿保持打開(kāi)狀態(tài)。

 

下面的代碼在關(guān)閉工作簿時(shí)總是會(huì)保存對(duì)該工作簿的修改,而不會(huì)彈出詢問(wèn)是否保存修改的消息框。

Private SubWorkbook_BeforeClose(Cancel As Boolean)

   If Me.Saved = False Then Me.Save

End Sub

 

Workbook_Open事件可用于在打開(kāi)工作簿時(shí)初始化工作簿,設(shè)置計(jì)算模式、設(shè)置屏幕、添加自定義菜單、為工作表中的組合框或列表框添加數(shù)據(jù)。Workbook_BeforeClose事件可用于恢復(fù)工作簿的初始設(shè)置、阻止用戶關(guān)閉工作簿,等等。

 

示例1:設(shè)定特定用戶才能操作工作表

下面的代碼在打開(kāi)工作簿時(shí)檢查用戶名是否為“完美Excel”,如果不是,則保護(hù)工作表,防止其他用戶對(duì)其進(jìn)行修改。

Private Sub Workbook_Open()

   Dim wks As Worksheet

   If Application.UserName <> '完美Excel' Then

        For Each wks In Worksheets

            wks.Protect UserInterfaceOnly:=True

        Next wks

   End If

End Sub

 

示例2:要求用戶輸入指定值

只有當(dāng)工作簿中的工作表Sheet1的單元格A1中的值為“完美Excel”時(shí),才能關(guān)閉該工作簿。代碼如下:

Private Sub Workbook_BeforeClose(CancelAs Boolean)

   If Worksheets('Sheet1').Range('A1') <> '完美Excel' Then

        MsgBox '請(qǐng)?jiān)诠ぷ鞅?/span>Sheet1的單元格中輸入''完美Excel'''

        Cancel = True

   End If

End Sub

 

關(guān)閉工作簿時(shí),如果工作表Sheet1的單元格A1中的值不是“完美Excel”,則會(huì)彈出如下圖2所示的提示消息。


2

 

示例3:添加/刪除自定義快捷菜單

當(dāng)僅需要在特定的工作簿中添加自定義快捷菜單時(shí),我們可以在Workbook_Open事件中添加自定義快捷菜單,在Workbook_BeforeClose事件中刪除該菜單。這是經(jīng)常使用的一種技術(shù)。

 

下面的代碼在打開(kāi)工作簿時(shí),在單元格右鍵菜單中添加一個(gè)名為“完美Excel”的按鈕,關(guān)閉工作簿時(shí)將其刪除。

Private Sub Workbook_Open()

   Dim cmb As CommandBarControl

   On Error Resume Next

   Application.CommandBars('Cell').Controls('完美Excel').Delete

   Set cmb = Application.CommandBars('Cell').Controls.Add _

                    (Type:=msoControlButton,Temporary:=True)

   cmb.Caption = '完美Excel'

   cmb.OnAction = 'excelperfect'

End Sub

 

Private SubWorkbook_BeforeClose(Cancel As Boolean)

   Dim strMsg As String

   Dim Response

   

   If Not ThisWorkbook.Saved Then

        strMsg = '是否想要保存所做的修改?'

        Response = MsgBox(strMsg, vbQuestion vbYesNoCancel)

        Select Case Response

           Case vbYes

                ThisWorkbook.Save

            Case vbNo

                ThisWorkbook.Saved = True

            Case vbCancel

                Cancel = True

                Exit Sub

        End Select

   End If

   On Error Resume Next

   Application.CommandBars('Cell').Controls('完美Excel').Delete

End Sub

 

代碼中,語(yǔ)句:

ThisWorkbook.Save

保存工作簿的修改而不會(huì)出現(xiàn)提示。

 

語(yǔ)句:

ThisWorkbook.Saved = True

放棄對(duì)工作簿所作的修改而不出現(xiàn)提示。

 

打開(kāi)該工作簿時(shí)的右鍵菜單如圖3所示。


3

 

BeforeClose事件中,我們創(chuàng)建了自已的“保存”對(duì)話框。之所以這樣做,是因?yàn)槿绻谛薷牧斯ぷ鞑径鴽](méi)有保存時(shí),Excel會(huì)彈出是否保存修改對(duì)話框,這個(gè)對(duì)話框發(fā)生在BeforeClose事件之后,此時(shí),如果用戶選擇“取消”而回到工作簿,那么菜單中的自定義按鈕已被刪除。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Excel實(shí)戰(zhàn)技巧89:強(qiáng)制用戶保護(hù)工作簿/工作表
跟煙花入門(mén)VBA之37:Workbook對(duì)象(五)
學(xué)習(xí)VBA,報(bào)表做到飛 第五章 事件篇 5.3 Workbook_BeforeClose事件
Xcel事件
VBA常用代碼解析(第九講)
EXCEL加載宏制作攻略
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服