广西快三跨度> 广西快三跨度

广西快三官网软件:【原】神奇的Excel VBA系列之:判斷是否存在指定名稱的工作表

來源:用戶 神奇的Exc... 收藏 編輯:王阿強

广西快三跨度 www.mfgdpw.com.cn 在前一篇文章神奇的Excel VBA系列之:制作工作表目錄中,分享了制作工作表目錄的源碼過程。 其中有個判斷當前工作簿中是否存在指定名稱的工作表代碼片段。 本篇中將介紹幾種使用VBA代碼來判斷工作表是否存在的方法。有關Excel VBA編程,可參考使用《神奇的VBA》插件。

假設我們想判斷工作簿中是否有名稱為“東門子訂單數據”的工作表。

第一種方法: 使用VBA遍歷循環的方法

Sub 判斷工作表是否存在_方法1() Dim sht As Worksheet For Each sht In Worksheets If sht.Name = "東門子訂單數據" Then MsgBox "存在" Exit Sub End If Next MsgBox "不存在" End Sub

該方法中綜合運用了,For Each遍歷循環語句和 Exist Sub語句來返回是否存在的結果。  這種方法VBA初學者最開始會選用這種思路。不過對于初學者而言,務必注意在循環語句中加入Exist Sub,否則將永遠顯示不存在。

第2中方法: VBA 字典方法

Sub 判斷工作表是否存在_方法2() Dim d As Object Set d = CreateObject("Scripting.Dictionary") Dim sht As Worksheet For Each sht In Worksheets d(sht.Name) = "" Next If d.exists("東門子訂單數據") Then MsgBox "存在" Else MsgBox "不存在" End If End Sub

第3種方法: 巧妙運用On Error...錯誤語句方法來判斷是否存在。

Sub 判斷工作表是否存在_方法3() Dim sht As Worksheet On Error Resume Next Set sht = Worksheets("東門子訂單數據") If Not sht Is Nothing Then MsgBox "存在" Else MsgBox "不存在" End If Set sht = Nothing End Sub

我們也可以將平時職場VBA編程中高頻重復的代碼片段寫成通用函數,以便其它VBA程序調用。以第一種方法為例。 我們改造寫成如下Function函數代碼形式:

Function IsSheetExisted(tabname As String) As Boolean Dim sht As Worksheet For Each sht In Worksheets If sht.Name = tabname Then IsSheetExisted = True Exit Function End If Next IsSheetExisted = False End Function

我們將函數名隨便起了個名字叫IsSheetExisted,函數只有一個字符串型參數tabname代表以后要傳入的工作表標簽名稱,函數返回Boolean類型結果(True/False)。下面,我們就可以在其它VBA程序中使用該函數了,見下面代碼: 

Sub 判斷工作表是否存在() MsgBox IIf(IsSheetExisted(""), "存在", "不存在") End Sub

我們也可是在單元格區域中使用上面的IsSheetExisted函數。

暫時就簡單介紹到這里!上面源碼復制下來,自己試一下吧。

有關Excel VBA編程知識(超多職場牛人的必備秘技),請安裝使用一款優秀職場人必備的工具《神奇的VBA》插件,一款嵌入進Excel軟件窗口功能區界面的應用,打開任意Excel工作簿就能隨時參考查閱學習VBA編程的Excel 插件。

贊賞 共11人贊賞

本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。本文《【原】神奇的Excel VBA系列之:判斷是否存在指定名稱的工作表》由網友神奇的Exc... 轉載收藏,版權歸原作者所有,
違法違規信息請立即聯系本網可獲得現金獎勵,

广西快三跨度 www.mfgdpw.com.cn false 互聯網 //www.mfgdpw.com.cn/view/socangkugm/mgdd/dz/ccmdcdkkWSNlkdgjgkls.html report 5035

    熱門圖片

    經濟金融企業管理法律法規社會民生科學教育降生活體育運動文化藝術電子數碼電腦網絡娛樂休閑行政地區心理分析醫療衛生