返回列表 上一主題 發帖

[發問] 請問前輩們 如何讓VBA 依據欄位裡的名稱去搜索到同名稱的工作表

回復 2# lpk187

'↓由儲存格來指定工作表〔名稱〕
SHN =Range("A1")

'↓〔忽略〕程式錯誤,〔繼續〕往下執行後面的指令
On Error Resume Next 
 
'↓設定 xS 給〔指定工作表〕,如果該工作表不存在,會產生〔錯誤並中斷〕在這一行,
Set xS = Sheets(SHN)  '因為有上一句,程式不中斷而往下執行

'↓〔恢復〕程式錯誤處理,亦即 On Error Resume Next 到這行以後就〔失效〕,
' 其後程式若有錯誤,一樣會產生〔中斷〕,不然下方程式有錯誤就無法發現!
On Error GoTo 0

'↓所以,還是要加這行以〔提醒〕使用者,並〔跳離〕程式
If xS Is Nothing Then MsgBox "工作表不存在": Exit Sub  

'↓上方都沒問題,才會執行以下的程式碼,以避免無法預知的錯誤,造成資料錯誤
With xS      'xS=Sheets("A公司")
      ...  
End With

TOP

回復 8# 順勢而為


Sub 導入()
Dim xS As Worksheet 

寫VBA請養成〔變數〕宣告!

進VBE說明檔,了解一下〔區域變數〕〔模組變數〕〔全域變數〕的宣告方式及功用,
對以後寫複雜程式絕對有用~~

TOP

        靜思自在 : 布施如播種,以歡喜心滋潤種子,才會發芽。
返回列表 上一主題