VBA代碼解決方案第58講:在VBA中查找指定工作表的實用方法

2021-01-11 VBA語言專家

大家好,我們今日繼續講解VBA代碼解決方案的第58講內容:在VBA中查找指定工作表的方法。在上一個例子中,我們通過一個自定義函數解決了刪除工作表的方法。其實實現目的的方法有很多種,不必要必須有某種辦法,但是寫程序的人,比如我,有著很大的惰性,或者說是偏愛某一種方法,比如,我特別喜歡用LEFT和RIGHT來進行左右的截取操作,雖然很多的時候用MID會更簡單些,唉,真的沒辦法。在完成某項目的也是如此,如果不是用自定義函數,只是用遍歷工作表的方法也可以實現的。今天的例子也是如此。所以有的朋友自認為自己有更好的方法,其實,有些時你是對的,或者說是對的,但對於做程序的人來說不一定會採用你認為好的方法,就這麼簡單。

今天我們講查找某個工作表的方法,在實際的應用中往往要先查到某個工作表,然後再進行操作控制。判斷工作簿中是否存在指定名稱的工作表,當然可以使用遍歷工作簿中所有工作表的方法外,單今天我仍要自定義函數的方法。

Function MyExistSh(Sh As String) As Boolean

Dim Sht As Object

On Error Resume Next

Set Sht = Sheets(Sh)

If Err.Number = 0 Then MyExistSh = True

Set Sht = Nothing

End Function

代碼解析:

自定義MyExistSh函數包含一個String類型的參數,代表需要判斷的工作表名稱。如果該工作表存在,則返回True。

第5行代碼判斷前面的代碼是否出錯,如果前面的代碼存在錯誤,則表示不存在指定名稱的表。

使用自定義ExistSheet函數判斷工作簿中是否存在指定名稱的工作表,如下面的代碼所示。

Sub MyNotSht()

Dim Sh As String

Sh = InputBox("請輸入查找的工作表名稱:")

If Len(Sh) > 0 Then

If Not MyExistSh(Sh) Then

MsgBox "對不起,您查找的" & Sh & "工作表不存在!"

Else

Sheets(Sh).Select

End If

End If

End Sub

代碼解析:

MyNotSht過程使用自定義的ExistSh函數判斷工作簿中是否存在指定名稱的工作表,如果不存在則使用消息框進行提示.

下面看代碼的實測,代碼窗口截圖:

代碼的運行:

當錄入kk後點擊確認,頁面的ACTIVESHEET會轉到KK的工作表。

今日內容回向:

1 查找工作表的思路是怎麼樣的?

2 上述代碼中If Err.Number = 0 Then MyExistSh = True是什麼意思?

相關焦點

  • VBA代碼解決方案第137講:VBA代碼打開任意程序的方法
    大家好,我們今日繼續講解VBA代碼解決方案的第137講內容:VBA代開任意程序的方法。我們在寫代碼的時候,有時候會必須打開另外一個文件,今日的內容就是解決這個問題,在VBA代碼中如何可以打開其他的程序呢?我講解兩種方法。一Shell函數。該函數讓你可以從VBA過程裡直接打開任意程序。Shell函數是什麼呢?
  • VBA代碼解決方案第49講:VBA代碼中工作表函數SUM的利用方法 - VBA...
    大家好,我們今日繼續講解VBA代碼解決方案的第49講內容(註:在整理之前的VBA系列文章中合併了一些文章,重新成集排序為第49講,所以從這篇文章開始以新的排序計算):VBA中SUM函數的利用方法。對多個單元格求和,是統計工作中非常普遍的工作,在之前的函數講解過程中,我下了很大的氣力來講解SUM函數及其衍生的函數,在數組的講解中也講了此函數在數組中的利用,可以說SUM函數在統計工作中起著舉足輕重的作用,如果把這個函數利用好了,對自己的工作是非常方便的,今日我在VBA中就此函數的利用及規律再次加以講解。
  • 利用VBA代碼,輕鬆完成向工作表中添加指定圖片到指定位置
    今日分享的是第NO.215-NO.215,內容是:NO. 215:Insert方法在工作表中插入圖片********************************************************************VBA過程代碼215:Insert方法在工作表中插入圖片Sub MynzinsertPic()Dim i As
  • VBA代碼解決方案第145講:WORD中VBA代碼循環、查找、替換的利用
    大家好,我們今日繼續講解VBA代碼解決方案的第145講內容:WORD中VBA的循環、查找、替換的利用。在講EXCEL的過程中,循環,查找,替換是很普遍的事情,那麼這些功能可否能在WORD中實現呢?當然的。VBA代碼解決方案一書馬上就要完結了,我爭取在最後的幾講中儘可能多的講一下實際的利用,讓廣大的朋友能得到最多的經驗。
  • excel VBA是什麼?VBA編程入門教程
    VBA是一種面向對象的解釋性語言,通常使用來實現Excel中沒有提供的功能、編寫自定義函數、實現自動化功能等。而且實用起來很高大上,還可以在小白面前炫耀炫耀。二、vba編程入門教程1、打開vba編輯器打開vba編輯器有下邊三種方法供大家使用:方法1:點擊excel菜單中的【開發工具】(如果沒有開發工具選項卡,請參考:excel開發工具選項卡在哪?
  • VBA代碼解決方案之二十五:EXCEL工作表的添加與刪除
    今日繼續講解VBA代碼解決方案的第二十五講:工作表如何添加和刪除。在VBA解決方案中,在工作簿中添加工作表使用Add方法,Add 方法應用於Sheets和Worksheets對象時新建工作表、圖表或宏表。
  • VBA代碼判斷工作簿中是否存在指定工作表及用數組保存數據的方法...
    大家好,今日內容仍是和大家分享VBA編程中常用的簡單「積木」過程代碼,這些內容大多是取至我編寫的「VBA代碼解決方案」教程中內容。NO.176-NO.177內容是:NO. 176:使用自定義MyExistSh函數判斷工作簿中是否存在指定名稱的工作表NO. 177:使用Array函數創建一個數組用來保存數據並將其寫入到工作表的單元格區域VBA過程代碼176:使用自定義MyExistSh函數判斷工作簿中是否存在指定名稱的工作表Sub mynz()Dim Sh As
  • VBA代碼解決方案第119講:如何遍歷工作表中的所有圖形
    大家好,我們今日繼續講解VBA代碼解決方案的第119講內容:如何遍歷工作表中的圖形。其實這節的內容在我前面的章節中已經講過,今日拿出來,作為一節的專門的內容。工作表中的多個圖形,有時我們需要根據實際的需要遍歷所有的圖形以達到某種共同的操作,這時需要怎麼做呢?
  • VBA代碼解決方案第120講:如何實現圖片在工作表中移動、旋轉
    大家好,我們今日繼續講解VBA代碼解決方案的第120講內容:如何實現圖片在工作表中移動、旋轉。在實際的工作中我們還會用到移動、旋轉圖片,今天就給大家講解這方面的知識。其實,移動圖片不難實現,我們只有改變圖片的位置就可以實現,如何讓圖片旋轉呢?這時我們會用到IncrementRotation方法。
  • 太實用了!Excel VBA常用代碼!
    前兩天有兩位朋友留言想收集一些VBA的常用代碼,今天開始會陸續分享一些!記得收藏好哦,因為今後你應用到稍大型Excel VBA程序時,這其中某些代碼肯定會用到。來看看都是哪些常用代碼:下面先舉一個簡單的例子:場景再現:在當前的工作表中插入一張e盤中名為1.jpg的圖片(長350、高300,距離Excel左側90、上邊框230)操作方法:第一步,打開vba代碼區,輸入通用格式【輸入 sub 統計()回車即可】,並將名稱改為「統計」;第二步,輸入控制語句(ActiveSheet.Shapes.AddPicture
  • Vba第四十三課
    Vba第四十三課關於vba操作工作表、數組、字典等所有的基本功能如果大家仔細去學習、認真敲代碼的話,數據分析應該是入門,當然vba作vb的分支語言,在office的平臺上去運行還是大有作為的,更深層次的功能都相當不錯,而前面的課程所講的功能基本可以定義為少量數據的清洗運算功能,要達到數據分析的水平是遠遠不夠的,比如操作資料庫、自定義函數等等都是數據分析的一些必要技巧
  • VBA代碼解決方案之二十三:激活工作簿後,如何遍歷工作表(一)
    大家好,今日我們繼續講解VBA代碼解決方案的二十三講,這講的內容和下講的內容是連續性的,共介紹兩個VBA中的兩個十分重要的語句,今日給大家講解的是For...Next 語句,以這個語句為核心,完成在Excel應用中遍歷工作簿中所有的工作表的方法。
  • Python和VBA巔峰對決-工作表的合併
    一起學習Python辦公自動化,教你快速學習Python的方法,可以站內私信我。一起加油!!!工作中,很多小夥伴都會遇到一些需求,將一份Excel文檔按照每個部門整理的工作表匯總為一份總的工作表。每個工作表格式都一樣,但是數量很多。傳統的方法就是手工打開文件,拷貝黏貼。費力耗時。
  • Excel VBA 批量匯總多個工作表,您只需要在一瞬間完成
    今天主要和大家介紹的是,我們如何在Excel中使用vba代碼來完成多個工作表的匯總工作。在某些時候,我們經常需要處理如下圖的工作表數據匯總工作,將其他月份的數據統一匯總到同一個工作表中。大多數人都是用手動粘貼複製來完成這個重複性的工作,那麼在你學習了本篇,你就會用更高的效率去完成這個事情了。
  • Vba第十九課
    Vba第十九課Like 運算符Like用來比較兩個字符串,比較運算裡面就涉及到通配符,下面介紹一下:「?」a" b = "vba" Like "???" c = "我愛vba" Like "*愛*" d = "我愛vba" Like "我*"End Sub
  • 運用Excel-vba合併工作表數據
    如下圖,工作簿中共有以下幾個工作表,現希望將各張工作表中的數據合併在一起。1.打開vba編輯器:右鍵單擊任意工作表,選擇「查看代碼」。2.輸入代碼:雙擊"ThisWorkbook",在代碼窗口中輸入以下代碼:Sub 合併當前工作簿下的所有工作表()Dim ws As WorksheetDim sh As Worksheet, i%On Error Resume Next '如遇錯誤繼續運行Application.ScreenUpdating = False
  • 使用VBA代碼完成判斷工作表是否存在及刪除工作表的方法
    大家好,今日內容仍是和大家分享VBA編程中常用的簡單「積木」過程代碼,這些內容大多是取至我編寫的「VBA代碼解決方案」教程中內容。NO.174-NO.175內容是:NO. 174:如何利用VBA代碼,判斷是否為空表,如果為空表則使用Delete方法刪除NO. 175:利用VBA的自定義函數,判斷工作表是否存在 VBA過程代碼174:如何利用VBA代碼,判斷是否為空表,如果為空表則使用Delete方法刪除
  • 利用VBA代碼實現多重查找、模糊查找、清除值的方案
    大家好,今日內容仍是和大家分享VBA編程中常用的簡單「積木」過程代碼,第NO.111-NO.113則,內容是:利用FindNext完成多重查找、利用ClearContents完成清除值的操作、利用FIND完成模糊查找等內容。
  • 工作表拆分,VBA用了30行,Python只有8行
    工作中,很多小夥伴都會遇到一些需求,將一份Excel文檔按照部門進行拆分,每個部門是一個單獨的工作表。讀者需要注意的是,多個工作表的拆分,始終在一個工作簿內操作。讓我們一起通過Python來實現。本例目標:根據指定的Excel文件按照部門拆分成多個工作表。最終效果:按照部門生成工作表。技術點:groupby()方法的使用,Excel的追加模式等。
  • VBA代碼解決方案第138講:VBA代碼在Word中的操作,如何打開文檔
    大家好,我們今日繼續講解VBA代碼解決方案的第138講內容:在Word中,VBA代碼如何打開一個文檔。在我之前的講解中,我講過,VBA是實現OFFICE實現自動化的一個手段,那麼既然WORD是OFFICE的一個主要的應用工具,他也是可以應用WORD的。