Workbooks對象是Microsoft Excel 應用程序中當前打開的所有 Workbook 對象的集合。有close、add、open等方法。
Workbooks.close
' ↑ 關閉所有打開的工作簿。
Workbooks.Add
' ↑ 創(chuàng)建一個新工作簿。
Workbooks.open Filename:="TEST.XLSX", ReadOnly:=True
' ↑ 將文件TEST.XLSX打開為只讀工作簿
Workbook對象是一個Microsoft Excel 工作簿。有Name、Path等屬性。有SaveAs等方法。有Open、Activate等事件。
- ThisWorkbook屬性返回運行Visual Basic代碼的工作簿。當Visual Basic代碼是加載宏的組成部分時,返回加載宏的工作簿,而非調用該加載宏的工作簿。
- ActiveWorkbook屬性返回當前處于活動狀態(tài)的工作簿。
- 使用 Workbooks(index)(其中 index 是工作簿名稱或索引號)可返回一個 Workbook 對象。index指創(chuàng)建或打開工作簿的順序。Workbooks(1) 是創(chuàng)建的第一個工作簿,而 Workbooks(Workbooks.Count)Workbooks返回最后一個打開的工作簿。激活某工作簿并不更改其索引號。所有工作簿均包括在索引計數中,即便是隱藏工作簿也是。
Workbooks(1).Activate
' ↑ 激活工作簿一(創(chuàng)建或打開的第一個工作簿)。
Workbooks("TEST.xlsx").Worksheets("Sheet1").Activate
' ↑ 激活名為“TEST.xlsx”的工作簿(該工作簿必須已經在 Microsoft Excel 中打開)中的 Sheet1。
ActiveWorkbook.Author = "Jean Selva"
' ↑ 設置活動工作簿作者的名稱。
Sheets集合是指定的或者活動工作簿中所有的工作表(圖表工作表Chart和工作表Worksheet)的集合。有Add等方法。
- 使用 Sheets(index)(其中 index 是工作表名稱或索引號)可返回一個 Chart 或 Worksheet 對象。工作表索引號指示該工作表在工作簿的標簽欄上的位置。Worksheets(1) 是工作簿中第一個(最左邊的)工作表,而 Worksheets(Worksheets.Count) 是最后一個。所有工作表均包括在索引計數中,即便是隱藏工作表也是。
- 使用 Sheets(array) 可指定多個工作表。
Sheets(1).Activate
' ↑ 激活活動工作簿中的工作表二。
Sheets("sheet1").Activate
' ↑ 激活活動工作簿中名為“Sheet1”的工作表。
Sheets(Array("Sheets4", "Sheet5")).Move before:=Sheets(1)
' ↑ 將名為"Sheet4"和"Sheet5"的工作表移到活動工作簿的開頭。
Worksheets對象是指定的或者活動工作簿中所有WorkSheet對象的集合。有Add等方法。
- 使用 Worksheets(index)(其中 index 是工作表索引號或名稱)可返回一個 Worksheet 對象。工作表索引號指示該工作表在工作簿的標簽欄上的位置。Worksheets(1) 是工作簿中第一個(最左邊的)工作表,而 Worksheets(Worksheets.Count) 是最后一個。所有工作表均包括在索引計數中,即便是隱藏工作表也是。
Worksheets.move After:=Sheets(SHeets.Count)
' ↑ 將所有工作表都移到工作簿的尾部,即將圖表工作表都放在工作表之前。
Worksheets.Add count:=2, Before:=Sheets(1)
' ↑ 在活動工作簿的工作表一之前創(chuàng)建兩個新工作表。
Worksheets(1).Visible = False
' ↑ 隱藏活動工作簿中的工作表一。
Worksheet對象代表一個工作表。有Name等屬性。有Activate、Delete等方法。有Name、Cells等屬性。有Activate、Change等事件。
- 使用 Worksheets(index)(其中 index 是工作表索引號或名稱)可返回一個 Worksheet 對象。工作表索引號指示該工作表在工作簿的標簽欄上的位置。Worksheets(1) 是工作簿中第一個(最左邊的)工作表,而 Worksheets(Worksheets.Count) 是最后一個。所有工作表均包括在索引計數中,即便是隱藏工作表也是。工作表名稱是工作表的標簽上顯示的名稱。
- ActiveSheet 屬性返回當前處于活動狀態(tài)的工作表。如果沒有活動的工作表,則返回Nothing。
Range對象代表某一單元格、某一行、某一列、某一選定區(qū)域(可包含一個或多個連續(xù)單元格區(qū)域)或某一三維區(qū)域。有Clear、Copy等方法。有Cells、Value、Font等屬性。
Range("A1).Value = "test"
' ↑ 將活動表上的A1單元格賦值為“test”。如果活動表不是工作表,則失敗。
Worksheets("sheet1").Range("A5").Value = "test"
' ↑ 將活動工作簿中名為“Sheet1”的工作表上的A1單元格賦值為“test”。字母大寫或小寫都可以。
Worksheets("Sheet1").Range("A1:H8").Formula = "=Rand()"
' ↑ 為活動工作簿中名為“Sheet1”的工作表上的區(qū)域A1:H8中的每個單元格設置公式。
Worksheets(1).Range("Criteria").ClearContents
' ↑ 清除區(qū)域名為“Critiria”的區(qū)域中的內容。
Range("1:4").Select
' ↑ 選擇第1到4行
Range("A:C").Select
' ↑ 選擇A到C列
Range("A:C").EntireColumn.Insert
' ↑ 在第1列左邊插入三列空白列
- 使用 Cells(row, column)(其中 row 是行號,column 是列標)可返回一個單元格。當工作表激活以后,使用 Cells 屬性時不必明確聲明工作表(它將返回活動工作表上的單元格)。column列標可以是字母格式的,例如Cells(1,"A");也可以是數字格式的。row行號和column列標可以為變量。
Worksheets("sheet1").Cells(1,1).Value = "test"
' ↑ 將活動工作簿中名為“Sheet1”的工作表上的A1單元格賦值為“test”。
- 使用 Range(cell1, cell2)(其中 cell1 和 cell2 是指定起始和終止單元格的 Range 對象)可返回一個 Range 對象。
Worksheets(1).Range(Worksheets(1).Cells(1,1), Worksheets(1).Cells(10,10)).Borders.LineStyle = xlThick
' ↑ 設置單元格區(qū)域A1:J10的邊框線條的樣式。如果Cells之前沒有句點及其左邊的對象(對象識別符),Cells 屬性將返回活動工作表上的單元格。
- 使用 expression.Cells(row, column)(其中 expression 是返回 Range 對象的表達式,row 和 column 是相對于該區(qū)域左上角的偏移量)可返回區(qū)域中的一部分。
Worksheets("Sheets1").Range("A5:H8").Cells(1,1).Formula = "=Rand()"
' ↑ 為A5單元格設置公式。
- 使用Union可返回多塊區(qū)域,即該區(qū)域由多個連續(xù)的單元格區(qū)域所組成。
Union(Range("A1:B2", Range(C3:D4")).Select
' ↑ 選定多塊區(qū)域。
- Range.Areas屬性將多區(qū)域選定內容拆分為單個的Range對象,并將對象返回為一個集合。
x = Selection.Areas.Count
' ↑ 返回多區(qū)域選定內容中的連續(xù)區(qū)域單元格的數量。
- Range.Row屬性返回區(qū)域中第一個子區(qū)域的第一行的行號。
x = Selection.Row
' ↑ 返回選定區(qū)域的行號。
Worksheets("Sheet1").Rows(3).Delete
x = Selection.Rows.Count
' ↑ 返回選定區(qū)域的行數。
- 可以直接使用單元格地址進行選擇和操作,但地址中不可包含變量。
[b7].Select
' ↑ 選定B7單元格。單元格地址用字符串表達,如A1、B3等,字母可小寫。注意用中括號括起單元格地址。
[a1:B5].Select
' ↑ 選擇單元格區(qū)域
[a1:a3,c1:c5].Select
' ↑ 選擇多個單元格區(qū)域
- Range.CurrentRegion屬性返回一個Range對象,該對象表示當前區(qū)域(當前區(qū)域是以空行與空列的組合為邊界的區(qū)域)。
ActiveCell.CurrenRegion.Select
' ↑ 選定活動單元格所在的當前區(qū)域。
- ListObject對象代表工作表中的表格/列表對象(即在工作表中插入表格后形成的列表)。
ActiveSheet.ListObjects.Add(xlSrcRange, Range("$A$1:$B$2"), , xlYes).Name = "表1"
' ↑ 將活動工作表中的”A1:B2“區(qū)域轉化為表格,命名為”表1“
ActiveSheet.ListObjects("表1").Name = "表ABC"
' ↑ 將表格名稱改為”表ABC”
ActiveSheet.ListObjects("表ABC").Resize Range("$A$1:$B$10")
' ↑ 將表格區(qū)域改為”A1:B10“
|