發布時間:2024-01-24閱讀(10)
【分享成果,隨喜正能量】一個內心真正強大的人,不是征服了什么,而是能夠承受什么。內心強大的人,往往自帶光芒。眾人以順境為樂,而君子樂自逆境中來,直面困境,戰勝心底的恐懼,盡人事聽天命。一個人的涵養,不在心平氣和時,而是心浮氣燥時;一個人的理性,不在風平浪靜時,而是眾聲喧嘩時;一個人的慈悲,不在居高臨下時,而是人微言輕時;情侶間的尊重,不是閑情逸致時,而是觀點相左時;夫妻間的恩愛,不在花前月下時,而是大難臨頭時!
《VBA代碼解決方案》這套教程是我最早推出的教程,目前已經是第二版修訂了。這套教程定位于入門后的提高,在學習這套教程過程中,側重點是要理解及掌握我的“積木編程”思想。要靈活運用教程中的實例像搭積木一下把自己喜歡的代碼擺好。
這套教程共三冊,一百四十七講,內容覆蓋較廣,也是初級和中級間的過度教程,改版后的內容主要是提供程序源碼文件及代碼修正為32位和64位兼用代碼。今后一段時間會給大家陸續推出。今日的內容是第20講:工作表對象的添加與刪除處理

大家好,今天繼續講解VBA代碼解決方案,今日的內容是第20講,EXCEL工作表的添加與刪除。在工作簿中添加工作表使用Add方法,Add 方法應用于Sheets和Worksheets對象時新建工作表、圖表或宏表。
語法:expression.Add(Before, After, Count, Type)
參數
a) Before是可選的,指定工作表對象,新建的工作表將置于此工作表之前。
b) After是可選的,指定工作表對象,新建的工作表將置于此工作表之后。
如果Before和 After兩者均省略,則新建的工作表將插入到活動工作表之前。
c) Count可選,要新建的工作表的數目。默認值為 1。
d) Type可選,指定新建的工作表類型。
1 利用Add方法增加一個工作表的通用代碼如果增加一個工作表,可以參考下面的通用代碼:
Sub mynz_20_1()
Dim Sh As Worksheet
With Worksheets
Set Sh = .Add(after:=Worksheets(.Count))
Sh.Name = "MY"
End With
End Sub
代碼解析:MyAddsh過程使用Add方法在工作簿中新建“MY”工作表。
a) 第2行代碼聲明變量Sh為工作表對象。
b) 第4行行代碼使用Add方法在工作簿的最后新建一個工作表。
c) 第5行代碼將添加的工作表重命名為“MY”。
2 批量添加工作表的代碼如果需要在工作簿中批量添加工作表,可以使用下面的代碼。
Sub mynz_20_2()
Dim i As Integer
Dim sh As Worksheet
For i = 101 To 102
Set sh = Sheets.Add(after:=Sheets(Sheets.Count))
sh.Name = i
Next
End Sub
代碼解析:
MyAddsh_2過程使用For...Next 語句和Add方法在工作簿中添加8張工作表并將添加的工作表依次重命名。
3 Delete方法刪除工作表使用Delete方法可以刪除工作表,應用于工作表對象的Delete方法刪除指定的對象。
語法如下:expression.Delete
參數expression是必需的。
在刪除工作表時會有一個系統提示,在必要的時候要避免這個提示,如何編寫這個代碼呢?可以參考下面的部分。
4 添加新工作表通用方法在運行添加工作表代碼前先刪除工作簿中的工作表雖然可以避免同名錯誤,但也可能誤刪除有用的工作表,因此更為嚴謹的方法是在添加前先判斷工作簿中是否存在相同名稱的工作表,然后再進行下一步的操作。
Sub mynz_20() 第20講 EXCEL工作表的添加與刪除
Dim sh As Worksheet
For Each Sh In Worksheets
If Sh.Name = "MY" Then
MsgBox "工作簿中已有""MY""工作表,將刪除原存在的工作表"
Application.DisplayAlerts = False
sh.Delete
Application.DisplayAlerts = True
EXIT FOR
End If
Next
With Worksheets
Set sh = .Add(after:=Worksheets(.Count))
sh.Name = "MY"
End With
End Sub
代碼解析:
mynz_20過程是先檢查工作表中是否含有“MY”工作表,如果有,立刻刪除,最后使用Add方法在工作簿中新建“MY”工作表.
a) For Each…. Next…. 將遍歷工作表,檢查原工作表中是否含有“MY”的工作表。
b) MsgBox "工作簿中已有""MY""工作表,將刪除原存在的工作表" 如果有“MY”的工作表,首先要彈出一個對話框,告知有這個工作表,講刪除。
c) Application.DisplayAlerts = False 將關閉彈出的警告對話框。
d) Application.DisplayAlerts = True 將打開彈出的警告對話框。
e) sh.Delete 刪除原有的工作表。
f) Set sh = .Add(after:=Worksheets(.Count))
sh.Name = "MY"
添加一個新的工作表,工作表的名稱為"MY"
代碼截圖:

工作表界面截圖:

運行后首先出現下面的對話框,刪除原來的工作表,之后再新建一個工作表。

今日內容回向:
1 ADD方法的意義是什么?
2 DELETE方法的意義是什么?
3 Application.DisplayAlerts 的意義是什么?

本講內容參考程序文件:VBA代碼解決方案修訂(1-48).xlsm
我20多年的VBA實踐經驗,全部濃縮在下面的各個教程中:
第7套教程(共三冊):《VBA之EXCEL應用》:是對VBA基本的講解
第1套教程(共三冊):《VBA代碼解決方案》:是入門后的提高教程
第4套教程(16G):VBA代碼解決方案之視頻(第一套的視頻講解)
第3套教程(共兩冊):《VBA數組與字典解決方案》:是對數組和字典的專題講解
第2套教程(共兩冊):《VBA數據庫解決方案》:是對數據庫的專題講解
第6套教程(共兩冊):《VBA信息獲取與處理》:講解VBA的網絡及跨程序應用
第5套教程(共兩冊):VBA中類的解讀和利用:類及接口技術的講解
第8套教程(共三冊):VBA之Word應用(最新教程):word中VBA的利用
上述教程的學習順序:
① 7→1→3→2→6→5或者7→4→3→2→6→5。
② 7→8
歡迎分享轉載→http://www.avcorse.com/read-212816.html
下一篇:紅娘是哪一部作品中的人物
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖