第10讲 Range 对象



《第10讲 Range 对象》由会员分享,可在线阅读,更多相关《第10讲 Range 对象(41页珍藏版)》请在文档大全上搜索。
1、nVBA通过对象来操作和控制Excel n查看完整的Excel对象模型:1.在 VBE 的工具栏单击 按钮2.在帮助窗口的工具栏单击 按钮3.在目录窗格的“Excel 2010 开发人员”下选择“Excel 对象模型参考”主题 n在对象模型列表中,以复数形式陈列的表示的是一个集合。集合是指一组相似的对象,例如Workbooks 是一个集合,而Worksheets是另一个集合n例:Application.Workbooks(”Book1”).Worksheets(”Sheet1”).Range(”A1”)其中,Book1是集合Workbooks的一个元素,Sheet1是集合Worksheets的
2、一个元素,A1是集合Range的一个元素nExcel应用程序 (Application)n工作薄 (Workbook)n工作表 (Worksheet)n区域 (Range)nExcel函数容器 (WorksheetFunction)n定义对象变量nDim xlsApp As Excel.ApplicationnDim xlsWB As Excel.WorkbooknDim xlsWS As Excel.WorksheetnDim xlsRG As Excel.Rangen为对象变量赋值nSet xlsWB = Workbooks(eg1.xlsx)nSet xlsWS = Workbooks(
3、1).Worksheets(Sheet1)nSet xlsRG = Workbooks(eg1). Sheets(1).Range(A1:D5)nThisWorkbookn当前宏代码运行的工作簿nActiveWorkbookn活动窗口的工作簿nActiveSheetn活动工作簿中的活动工作表nActiveCelln活动窗口的活动单元格nRange对象本身就表示一个集合,可代表某一单元格、某一行、某一列、某一选定区域n可用Range(arg)来返回代表单个单元格或单元格区域的Range对象,其中arg为区域名称。例如:Dim vRng As RangeSet vRng = ThisWorkboo
4、k.ActiveSheet.Range(A1:A5)nValuen表示单元格的内容,不仅可表示单个单元格的值,也可将整个区域作为一个数组返回或者设置n例1:ActiveCell.Value = 5n例2:vData = ActiveSheet.Range(A5:E6).ValueActiveSheet.Range(A8:E9).Value = vDatanCellsn表示单元格区域中的所有单元格n可用Cells(row, column)表示单元格区域中的某个单元格,其中row为行号,column为列标n例如,下面代码将当前工作表B2:D4区域的第2行第2列的单元格(即C3)的值设为5:This
5、Workbook.ActiveSheet.Range(B2:D4).Cells(2, 2).Value = 5nOffsetn表示相对于指定区域偏移若干行和列以后的区域,使用方法:Offset(row, column),其中 row 和 column 分别为行偏移量和列偏移量n例:ActiveCell.Offset(3, 3).Value = 5n试用VBA的方法,先在eg1.xlsx的活动工作表的A1和B1单元格分别填上“随机数”和“是否奇数”,然后在A2:A6区域随机产生5个两位整数,最后在B2:B6用True和False填上是否奇数的判断结果nCurrentRegionn表示当前区域,当
6、前区域是以空行与空列的组合为边界的非空区域n例如,下面代码选定工作表 Sheet1 上的当前区域:Worksheets(Sheet1).ActivateActiveCell.CurrentRegion.SelectnColumnsn表示指定单元格区域中的所有列n可用Columns(index)表示单元格区域中的某列n例如,下面代码将B2:D4区域第一列中每一单元格的值置为0:ThisWorkbook.ActiveSheet.Range(B2:D4).Columns(1).Value = 0nColumnWidthn表示指定区域中所有列的列宽,例:With Worksheets(Sheet1).
7、Range(B3.A12) .ColumnWidth = .ColumnWidth * 2End WithnColumnn返回指定区域第一个子区域的第一列的列号n例如,下面代码返回myRange区域最后一列的列号:myRange.Columns(myRange.Columns.Count).ColumnnRowsn表示指定单元格区域中的所有行n可用Rows(index)表示单元格区域中的某行n例如,下面代码将B2:D4区域的第3行删除:ThisWorkbook.ActiveSheet.Range(B2:D4).Rows(3).DeletenRowHeightn表示指定区域中所有行的行高,例:
8、ActiveSheet.Range(B3.A12).RowHeight = 10nRown返回区域中第一个子区域的第一行的行号n例如,下面代码将工作表 sheet1 中每隔一行的行高设置为 4 磅: For Each rw In Worksheets(Sheet1).Rows If rw.Row Mod 2 = 0 Then rw.RowHeight = 4 End If Next rwnCountn表示指定单元格区域的单元格个数n注意:Cells、Columns 和 Rows 集合对象亦有 Count 属性n试用VBA的方法,统计eg2.xlsx的Sheet1中薪资超过3000的员工人数,并