Add方法創建工作簿或工作表
1、Add方法創建新的工作簿
語法:workbooks對象.add(temple), 其中temple爲參數可選
另外還可以指定工作簿中工作表數量,如:
Dim bbb As Workbook
Application.SheetsInNewWorkbook = 5
Set bbb = Workbooks.Add
bbb.SaveAs fileName:="你好"
如果沒有指定工作表數量,則默認創建空的工作簿
2、Add方法創建一個新工作表並使其成爲活動工作表
語法:worksheets對象.Add(Before,After,Count,Type) , 所有參數均可選
說明:
-
參數Before和參數After只能二選一。
-
參數Before指定一個工作表,新添加的工作表放置在該工作表之前。
-
參數After指定一個工作表,新添加的工作表放置在該工作表之後。
-
參數Count指定要添加的工作表數量,默認值爲1。
'在工作表最後插入3張工作表,多個參數要用逗號隔開 Worksheets.Add after:=Worksheets(Worksheets.Count), Count:=3 '當前活動工作表名字改爲newsheet ActiveSheet.Name = "newsheet"
-
新添加的工作表成爲活動工作表,因此使用Activesheet屬性來返回當前工作表並使用Name屬性來給工作表命名。
二、Delete方法刪除工作簿或工作表
語法:工作表對象.delete
Sheets("sheet1").Select
ActiveWindow.SelectedSheets.Delete
'關閉警告消息
Application.DisplayAlerts = False
'遍歷工作表並刪除工作表名不是"newsheet"的工作表
For Each ws In Worksheets
If ws.Name <> "newsheet" Then ws.Delete
Next ws
'恢復警告消息
Application.DisplayAlerts = True
Dim bbb As Workbook
Dim ws As Worksheet
Application.SheetsInNewWorkbook = 5
Set bbb = Workbooks.Add
bbb.SaveAs fileName:="你好"
Worksheets.Add after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "newsheet"
'Sheets("sheet1").Select
'ActiveWindow.SelectedSheets.Delete
Application.DisplayAlerts = False
'關閉警告消息
Application.DisplayAlerts = False
'遍歷工作表並刪除工作表名不是"newsheet"的工作表
For Each ws In Worksheets
If ws.Name <> "newsheet" Then ws.Delete
Next ws
'恢復警告消息
Application.DisplayAlerts = True
Open方法
工作簿/表對象 . Open( FileName , UpdateLinks , ReadOnly , Format , Password , WriteResPassword ,
IgnoreReadOnlyRecommended , Origin , Delimiter , Editable , Notify , Converter , AddToMru , Local , CorruptLoad )
參數說明:
具有很多參數,但大多數參數都很少用到。在這些參數中,除參數FileName必須外,其它參數都可選。
參數FileName指定要打開的工作簿文件的名稱(特別注意!!這個參數不僅僅指工作簿的名稱,還包括其路徑!),參數UpdateLinks指定更新工作簿中鏈接的方式,參數ReadOnly用來設置是否以只讀方式打開工作簿。如果需要使用密碼來打開工作簿,則應該將參數Password設置爲該密碼;如果需要使用密碼打開工作簿但沒有指定密碼,則會彈出詢問密碼的對話框。參數AddToMru指定是否將工作簿添加到最近使用的文件列表中,建議將其設置爲True,默認值爲False。
'應用示例4:以只讀方式打開某工作簿
Sub openWorkbook2()
Dim fname As String
MsgBox "將D盤中的<測試.xls>工作簿以只讀方式打開"
fname = "D:\測試.xls"
Workbooks.Open Filename:=fname, ReadOnly:=True
End Sub
Copy方法
對工作表進行操作
Dim wba As Workbook, wbc As Worksheet
'若下面兩句set順序互換則會出錯,原因是ActiveWorkbook會變成新加的workbook,而新的workbook裏沒有“季度彙總”
'或者可以穩妥的加上如下語句: Windows("季報.xlsm").Activate
Set wbc = ActiveWorkbook.Worksheets("季度彙總")
Set wba = Workbooks.Add
wbc.Copy before:=wba.Sheets(1)
表內數據的操作
'將數據表“季度彙總”中B2單元格複製到第二個sheet中的A1單元格內
Sheets("季度彙總").Range("B2").copy Sheets(2).Range("A1")
save方法
當前工作簿保存 save
ActiveWorkbook.Save
save as
語法:SaveAs
( _FileName_
, _FileFormat_
, _Password_
, _WriteResPassword_
, _ReadOnlyRecommended_
, _CreateBackup_
, _AccessMode_
, _ConflictResolution_
, _AddToMru_
, _TextCodepage_
, _TextVisualLayout_
, _Local_
)
其中以filename較爲常用,注意filename可包含完整路徑,如果不指定路徑,Microsoft Excel 將文件保存到當前文件夾中,因此
最好是把路徑填寫完整。
Dim wba As Workbook, Dim fname As String
Set wba = Workbooks.Add
wkfilename = "D:\Desktop\hello.xlsx"
wba.SaveAs filename:=wkfilename
close方法
語法:工作簿對象.Close(SaveChanges, Filename, RouteWorkbook)
三個參數均可選
SaveChanges: 用於在關閉工作簿前保存工作簿所發生的變化,如果工作簿沒有變化,該參數將被忽略。如果工作簿顯現在其它打開的窗口中,該參數也被忽略。如果工作簿發生了變化且沒有顯現在任何其它打開的窗口中,該參數將生效。如果SaveChanges的值爲True,將存儲該變化。如果參數SaveChanges的值爲False,則工作簿所發生的變化不會被保存。最後,如果參數SaveChanges被忽略,Excel將顯示一個對話框詢問是否保存工作簿所發生的變化。
Filename:如果先前該工作簿沒有保存過(沒有文件名),那麼將使用在參數FileName中所設置的名稱,若用戶沒有填寫該參數,Excel將提示用戶輸入一個文件名。簡而言之,該方法的行爲正如你所希望的。
RouteWorkbook:指出工作簿傳送的問題 。
dim wb as workbook
wb.Close SaveChanges:=ture