VBA的單元格的內容,暫時就講解那麼多。從本章開始講解Excel vba的工作表的操作。
工作中,我們常常對Excel的數據進行分工作表的處理,比如常見的就是數據錄入是一個表格,數據分析是一個工作表,最終的報表呈現又是另外一個工作表。這樣可以做到表格分類清晰,閱讀者也方便。那麼工作表的操作,在VBA裡面,是怎麼實現的呢?
工作表的增加與刪除
首先演示一串代碼:
Sub add()
Worksheets.add
End Sub
它實現的功能,就相當於點擊了工作表欄上的+號 (Excel的版本 2016)
使用add的方法,就可以新增一個工作表格。但是我們新增一個表格時候,可能有一些想法,比如在現有的某個表格的後面增加一個表格或在之前增加一個表格。
Sub add()
Worksheets.add before:=Worksheets("Sheet1")
End Sub
代碼演示結果如下:
代碼解析:
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
代碼的運行結果如下:
給新的表格進行命名,如果已經有相同名稱的工作表,上述代碼如果再次運行,就會報錯,如下圖:
這個時候,需要增加一個判讀的語句,來判斷這個表格是否存在,如果存在就刪除工作表,然後再就新增工作表
代碼如下:
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 程序流的講解,後續會單獨出專篇,本節就不深入的講解了。
閱讀更多 浮雲Excel分享 的文章