第10講 Range 對(duì)象_第1頁
第10講 Range 對(duì)象_第2頁
第10講 Range 對(duì)象_第3頁
第10講 Range 對(duì)象_第4頁
第10講 Range 對(duì)象_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、nVBA通過對(duì)象來操作和控制Excel n查看完整的Excel對(duì)象模型:1.在 VBE 的工具欄單擊 按鈕2.在幫助窗口的工具欄單擊 按鈕3.在目錄窗格的“Excel 2010 開發(fā)人員”下選擇“Excel 對(duì)象模型參考”主題 n在對(duì)象模型列表中,以復(fù)數(shù)形式陳列的表示的是一個(gè)集合。集合是指一組相似的對(duì)象,例如Workbooks 是一個(gè)集合,而Worksheets是另一個(gè)集合n例:Application.Workbooks(”Book1”).Worksheets(”Sheet1”).Range(”A1”)其中,Book1是集合Workbooks的一個(gè)元素,Sheet1是集合Worksheets的

2、一個(gè)元素,A1是集合Range的一個(gè)元素nExcel應(yīng)用程序 (Application)n工作薄 (Workbook)n工作表 (Worksheet)n區(qū)域 (Range)nExcel函數(shù)容器 (WorksheetFunction)n定義對(duì)象變量nDim xlsApp As Excel.ApplicationnDim xlsWB As Excel.WorkbooknDim xlsWS As Excel.WorksheetnDim xlsRG As Excel.Rangen為對(duì)象變量賦值nSet xlsWB = Workbooks(eg1.xlsx)nSet xlsWS = Workbooks(

3、1).Worksheets(Sheet1)nSet xlsRG = Workbooks(eg1). Sheets(1).Range(A1:D5)nThisWorkbookn當(dāng)前宏代碼運(yùn)行的工作簿nActiveWorkbookn活動(dòng)窗口的工作簿nActiveSheetn活動(dòng)工作簿中的活動(dòng)工作表nActiveCelln活動(dòng)窗口的活動(dòng)單元格nRange對(duì)象本身就表示一個(gè)集合,可代表某一單元格、某一行、某一列、某一選定區(qū)域n可用Range(arg)來返回代表單個(gè)單元格或單元格區(qū)域的Range對(duì)象,其中arg為區(qū)域名稱。例如:Dim vRng As RangeSet vRng = ThisWorkboo

4、k.ActiveSheet.Range(A1:A5)nValuen表示單元格的內(nèi)容,不僅可表示單個(gè)單元格的值,也可將整個(gè)區(qū)域作為一個(gè)數(shù)組返回或者設(shè)置n例1:ActiveCell.Value = 5n例2:vData = ActiveSheet.Range(A5:E6).ValueActiveSheet.Range(A8:E9).Value = vDatanCellsn表示單元格區(qū)域中的所有單元格n可用Cells(row, column)表示單元格區(qū)域中的某個(gè)單元格,其中row為行號(hào),column為列標(biāo)n例如,下面代碼將當(dāng)前工作表B2:D4區(qū)域的第2行第2列的單元格(即C3)的值設(shè)為5:This

5、Workbook.ActiveSheet.Range(B2:D4).Cells(2, 2).Value = 5nOffsetn表示相對(duì)于指定區(qū)域偏移若干行和列以后的區(qū)域,使用方法:Offset(row, column),其中 row 和 column 分別為行偏移量和列偏移量n例:ActiveCell.Offset(3, 3).Value = 5n試用VBA的方法,先在eg1.xlsx的活動(dòng)工作表的A1和B1單元格分別填上“隨機(jī)數(shù)”和“是否奇數(shù)”,然后在A2:A6區(qū)域隨機(jī)產(chǎn)生5個(gè)兩位整數(shù),最后在B2:B6用True和False填上是否奇數(shù)的判斷結(jié)果nCurrentRegionn表示當(dāng)前區(qū)域,當(dāng)

6、前區(qū)域是以空行與空列的組合為邊界的非空區(qū)域n例如,下面代碼選定工作表 Sheet1 上的當(dāng)前區(qū)域:Worksheets(Sheet1).ActivateActiveCell.CurrentRegion.SelectnColumnsn表示指定單元格區(qū)域中的所有列n可用Columns(index)表示單元格區(qū)域中的某列n例如,下面代碼將B2:D4區(qū)域第一列中每一單元格的值置為0:ThisWorkbook.ActiveSheet.Range(B2:D4).Columns(1).Value = 0nColumnWidthn表示指定區(qū)域中所有列的列寬,例:With Worksheets(Sheet1).

7、Range(B3.A12) .ColumnWidth = .ColumnWidth * 2End WithnColumnn返回指定區(qū)域第一個(gè)子區(qū)域的第一列的列號(hào)n例如,下面代碼返回myRange區(qū)域最后一列的列號(hào):myRange.Columns(myRange.Columns.Count).ColumnnRowsn表示指定單元格區(qū)域中的所有行n可用Rows(index)表示單元格區(qū)域中的某行n例如,下面代碼將B2:D4區(qū)域的第3行刪除:ThisWorkbook.ActiveSheet.Range(B2:D4).Rows(3).DeletenRowHeightn表示指定區(qū)域中所有行的行高,例:

8、ActiveSheet.Range(B3.A12).RowHeight = 10nRown返回區(qū)域中第一個(gè)子區(qū)域的第一行的行號(hào)n例如,下面代碼將工作表 sheet1 中每隔一行的行高設(shè)置為 4 磅: For Each rw In Worksheets(Sheet1).Rows If rw.Row Mod 2 = 0 Then rw.RowHeight = 4 End If Next rwnCountn表示指定單元格區(qū)域的單元格個(gè)數(shù)n注意:Cells、Columns 和 Rows 集合對(duì)象亦有 Count 屬性n試用VBA的方法,統(tǒng)計(jì)eg2.xlsx的Sheet1中薪資超過3000的員工人數(shù),并

9、用消息框顯示nFont:表示指定區(qū)域的字體格式,其本身也是一個(gè)對(duì)象,有如下常用的屬性:Name:字體名稱FontStyle:字形Size:字號(hào)Strikethrough:刪除線Superscript:上標(biāo)Subscript:下標(biāo)OutlineFont:空心字Shadow:陰影Underline:下劃線ColorIndex:顏色編號(hào)ColorIndex顏色常量顏色常量描述描述1vbBlack黑色2vbWhite白色3vbRed紅色4vbGreen綠色5vbBlue藍(lán)色6vbYellow黃色7vbMagenta洋紅8vbCyan青色n試用VBA的方法,將eg3.xlsx的Sheet1中薪資最高的員

10、工的所在行記錄設(shè)置為字體加粗、紅色nInteriorn表示指定區(qū)域的內(nèi)部格式,其本身也是一個(gè)對(duì)象,常用的屬性是 ColorIndex 和 Pattern,其中ColorIndex的取值范圍如Font對(duì)象的 ColorIndex值,Pattern表示填充圖案n試用VBA的方法,將eg4.xlsx的Sheet1中女員工的記錄設(shè)置成黃色填充 Dim vRng As Range, vRow As Range Set vRng = ActiveSheet.Range(A1).CurrentRegion For Each vRow In vRng.Rows If vRow.Cells(ColumnInde

11、x:=3).Value = 女 Then vRow.Interior.ColorIndex = 6 End If Next vRown命名參數(shù)n在調(diào)用 Sub 或 Function 過程時(shí),可不必拘泥于語法所規(guī)定的特定順序來提供值,而按自定義順序用命名參數(shù)來分配值。例如,假設(shè)一Sub過程設(shè)定了三個(gè)參數(shù):Sub DoSomeThing (namedarg1, namedarg2, namedarg3)則在調(diào)用它時(shí),可使用以下語句:DoSomeThing namedarg3 := 4, namedarg2 := 5, namedarg1 := 20n命名參數(shù)在調(diào)用具有可選的參數(shù)過程時(shí)顯得特別有用。

12、如果使用命名參數(shù),則不必利用逗號(hào)去區(qū)分出失去位置的參數(shù)n例如:MsgBox Hi,VBA., , 命名參數(shù)示例等價(jià)于MsgBox Hi,VBA., Title:=命名參數(shù)示例nAddressn返回區(qū)域的引用地址,默認(rèn)時(shí)返回的是絕對(duì)引用,例如:Set mc = Worksheets(Sheet1).Cells(1, 1)MsgBox mc.Address 上面語句執(zhí)行后,消息框中顯示“$A$1”nFormulan區(qū)域中的公式Worksheets(Sheet1).Range(A1).Formula = =$A$4+$A$10 Worksheets(Sheet1”).Range(A1:E4). Fo

13、rmula = =RAND()n利用Range對(duì)象的Formula屬性實(shí)現(xiàn)實(shí)例1奇數(shù)判斷的功能nEndn表示包含源區(qū)域的區(qū)域尾端的單元格,語法為:End(Direction),其中Direction有4個(gè)取值:xlDown、xlToRight、xlToLeft、xlUp n例如,下面代碼將選定區(qū)域從單元格 B4 延伸至第四行最后一個(gè)包含數(shù)據(jù)的單元格Worksheets(Sheet1).ActivateRange(B4, Range(B4).End(xlToRight).Selectn利用Range對(duì)象的End屬性實(shí)現(xiàn)實(shí)例2的功能?nMergeCellsn表示單元格或區(qū)域是否被包含在一個(gè)合并區(qū)域

14、中,如果是,則該值為 TruenMergeArean表示某單元格所在的合并區(qū)域。如果該單元格不在合并區(qū)域內(nèi),則該屬性返回該單元格本身n例如,下面代碼表示為包含單元格 A3 的合并區(qū)域賦值Set ma = Range(a3).MergeAreaIf ma.Address = $A$3 Then MsgBox not mergedElse ma.Cells(1, 1).Value = 42End Ifn注意:Cells、Columns 及 Rows 本身也是一個(gè) Range 型的集合對(duì)象,因此,它們也具有Value、Count、Font、Interior等屬性Range對(duì)象的常用方法nActiva

15、ten激活單個(gè)或多個(gè)單元格Worksheets(sheet1).Range(A1).ActivatenSelectn選中區(qū)域Worksheets(sheet1).Range(A1:B5).SelectnAutoFitn將區(qū)域中的列寬和行高調(diào)整為最適當(dāng)?shù)闹礧orksheets(1).Range(A1:E1).Columns.AutoFitRange對(duì)象的常用方法nCopyn復(fù)制nCutn剪切nPasteSpecialn粘貼,允許設(shè)置粘貼值還是格式(詳見系統(tǒng)幫助)n例如,下面代碼表示用 Sheet1 上單元格區(qū)域 C1:C5 和單元格區(qū)域 D1:D5 原有內(nèi)容的和來取代單元格區(qū)域 D1:D5 中的

16、數(shù)據(jù)With Worksheets(Sheet1) .Range(C1:C5).Copy .Range(D1:D5).PasteSpecial _ Operation:=xlPasteSpecialOperationAddEnd WithRange對(duì)象的常用方法nInsertn插入一個(gè)單元格或區(qū)域,其他單元格作相應(yīng)移位以騰出空間ActiveSheet.Range(A1:D1).InsertnDeleten刪除ActiveSheet.Range(A1:D1).DeletenClearn清除Range內(nèi)的內(nèi)容,包括注釋和格式Worksheets(Sheet2).Range(A3.D12).ClearnClearContentsn清除Range內(nèi)的內(nèi)容,不清除格式和注釋W(xué)orksheets(Sheet2).Range(A3.D12).ClearContentsnClearFormatsn清除Range內(nèi)的格式Worksheets(She

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論