Excel VBA 工作表的增加與刪除

VBA的單元格的內容,暫時就講解那麼多。從本章開始講解Excel vba的工作表的操作。

工作中,我們常常對Excel的數據進行分工作表的處理,比如常見的就是數據錄入是一個表格,數據分析是一個工作表,最終的報表呈現又是另外一個工作表。這樣可以做到表格分類清晰,閱讀者也方便。那麼工作表的操作,在VBA裡面,是怎麼實現的呢?

工作表的增加與刪除

首先演示一串代碼:

Sub add()

Worksheets.add

End Sub

它實現的功能,就相當於點擊了工作表欄上的+號 (Excel的版本 2016)

Excel VBA 工作表的增加與刪除

使用add的方法,就可以新增一個工作表格。但是我們新增一個表格時候,可能有一些想法,比如在現有的某個表格的後面增加一個表格或在之前增加一個表格。

Sub add()

Worksheets.add before:=Worksheets("Sheet1")

End Sub

代碼演示結果如下:

Excel VBA 工作表的增加與刪除

代碼解析:

1:使用了add的方法新增一個工作表格

2:在sheet1的表格之前,新增工作表(before)

Add 方法應用於Sheets和Worksheets對象時新建工作表、圖表或宏表,語法如下:

expression.Add(Before, After, Count, Type)

參數Before是可選的,指定工作表對象,新建的工作表將置於此工作表之前。

參數After是可選的,指定工作表對象,新建的工作表將置於此工作表之後。

如果Before和 After兩者均省略,則新建的工作表將插入到活動工作表之前。

參數Count可選,要新建的工作表的數目。默認值為 1。

參數Type可選,指定新建的工作表類型。

如果需要給新增的表格一個名稱,上面的代碼,還需要一些調整。

代碼如下:

Sub addname()

'在sheet1之前新增一個工作表

Set sh = Worksheets.add(before:=Worksheets("Sheet1"))

'給新的工作表命名為cost

sh.Name = "cost"

End Sub

代碼的運行結果如下:

Excel VBA 工作表的增加與刪除

給新的表格進行命名,如果已經有相同名稱的工作表,上述代碼如果再次運行,就會報錯,如下圖:

Excel VBA 工作表的增加與刪除

這個時候,需要增加一個判讀的語句,來判斷這個表格是否存在,如果存在就刪除工作表,然後再就新增工作表

代碼如下:

Sub addname()

'查找目前所有的表格

Dim sh1 As Worksheet

For Each sh1 In ThisWorkbook.Sheets

'關閉刪除工作表時彈出的對話框

Application.DisplayAlerts = False

'如果有名稱為cost的表格就刪除

If sh1.Name = "cost" Then sh1.Delete

Next

'在sheet1之前新增一個工作表

Set sh = Worksheets.add(before:=Worksheets("Sheet1"))

'給新的工作表命名為cost

sh.Name = "cost"

End Sub

上述代碼 sh1.delete 方法就可以刪除選擇的工作表

for each 及 if 程序流的講解,後續會單獨出專篇,本節就不深入的講解了。


分享到:


相關文章: