表有哪些方法和屬性?
方法也可以理解爲動作,表的方法有select,add, delete, copy,表的屬性有count,name
假設工作簿中按順序新建3張表叫1月和2月和3 月。如何切換到第2張表?
Sheet2.select //sheet2是表的默認名稱。重命名只是給sheet2起一個別名
Sheets(2).select //sheets(2)指工作簿的第2張表
Sheets(“2月”).Select // Sheets(“2月”)指重命名爲2月的表
如何知道工作簿中有多少張表?
Sheets.count //注意這裏是一個值,並不能運行,如果想要查看結果可以複製到單元格中
像這樣:sheet1.range(“a1”)=sheets.count在sheet1表的A1單元格中可查看錶數量。
如何新建一個表?
Sheets.add after:=sheet1 //在第一張表後面新建一張表
Sheets.add before:=sheet1 //在第一張表前面新建一張表
Sheets.add after:=sheets(sheets.count) //在最後一個表後面新建一張表
案例1
題目:新建一個工作簿,在工作簿中插入12個新表,名稱依次爲1月到12月,結果如下圖:
分析:
新建12張表,需要執行12次,每次的操作一樣,現在所有表後面新建一張表Sheets.add after:=sheets(sheets.count),然後給這個新建的表重命名需要用到name屬性。,
代碼:
Sub addsheet ()
Dim i as integer
For i =1 to 12
Sheet1.add after:=sheets(sheets.count)
Sheets(sheets.count).Name = i & “月”
Next
End sub
如何刪除一張表?
Sheet1.delete
但是會彈出確定刪除嗎對話框,我們需要先禁止彈出對話框再執行刪除操作
Excel.application.displayalerts=false
Sheet1.delete
Excel.application.displayalerts=true//執行完要取消禁止
如何copy一張表?
Sheet1.copy //會新建一個工作簿,因爲沒有指定copy的位置
Sheet1.copy after:=sheets(sheets.count)
案例2
題目:將所有表(除了部門表)的名字按順序填充到部門表的A列單元格中,結果如下圖:
代碼:
Sub al2()
Dim i as integer
For i =2 to sheets.count
Sheets(“部門”).range(“a” & i-1)=sheets(i).Name
Next
End sub
案例3
題目:下面工作簿中有5月份的日報表,每個表內容一致,現在需要將每個表中的報表日期、審覈人、總計(彙總表中稱爲金額)等信息彙總到彙總表中,如下圖:
最終結果,點擊彙總按鈕,彙總表自動填充彙總內容到相應位置
分析:
1.要使用for循環,從第2張表開始循環一直到最後一張表也就是sheets.count;
2.報表日期在每張表的e5單元格。可以用range(“e5”)獲取相應的值;按順序填充到彙總表的B列從第10行開始填充;
3.審覈人在每張表的e6單元格。可以用range(“e6”)獲取相應的值;按順序填充到彙總表的C列從第10行開始填充;
4.總計(金額)在每張表的e44單元格。可以用range(“e44”)獲取相應的值;按順序填充到彙總表的D列從第10行開始填充;
5.插入一個彙總按鈕,指定宏huizong()
代碼:
Sub huizong()
Dim i as integer
For I =2 to sheets.count
Sheet1.range(“b” & i+8)=sheets(i).range(“e5”)
Sheet1.range(“c” & i+8)=sheets(i).range(“e6”)
Sheet1.range(“d” & i+8)=sheets(i).range(“e44”)
Next
End sub
對數據分析或者vba有興趣的朋友可以關注我的公衆號,我會在公衆號裏面發學習筆記,全是乾貨。一起學習一起成長!