range andcells用法

上传人:无*** 文档编号:170020908 上传时间:2022-11-18 格式:DOC 页数:18 大小:122.50KB
返回 下载 相关 举报
range andcells用法_第1页
第1页 / 共18页
range andcells用法_第2页
第2页 / 共18页
range andcells用法_第3页
第3页 / 共18页
点击查看更多>>
资源描述
第五章 Range对象基本操作应用示例(1)Range对象可能是VBA代码中最常用的对象,Range对象可以是某一单元格、某一单元格区域、某一行、某一列、或者是多个连续或非连续的区域组成的区域。下面介绍Range对象的一些属性和方法。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 示例05-01 赋值给某单元格示例05-01-01Sub test1()Worksheets(Sheet1).Range(A5).Value = 22MsgBox 工作表Sheet1内单元格A5中的值为 _& Worksheets(Sheet1).Range(A5).ValueEnd Sub示例05-01-02Sub test2()Worksheets(Sheet1).Range(A1).Value = _Worksheets(Sheet1).Range(A5).ValueMsgBox 现在A1单元格中的值也为 & _Worksheets(Sheet1).Range(A5).ValueEnd Sub示例05-01-03Sub test3()MsgBox 用公式填充单元格,本例为随机数公式Range(A1:H8).Formula = =Rand()End Sub示例05-01-04Sub test4()Worksheets(1).Cells(1, 1).Value = 24MsgBox 现在单元格A1的值为24End Sub示例05-01-05Sub test5()MsgBox 给单元格设置公式,求B2至B5单元格区域之和ActiveSheet.Cells(2, 1).Formula = =Sum(B1:B5)End Sub示例05-01-06Sub test6()MsgBox 设置单元格C5中的公式.Worksheets(1).Range(C5:C10).Cells(1, 1).Formula = =Rand()End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-02 引用单元格Sub Random()Dim myRange As Range设置对单元格区域的引用Set myRange = Worksheets(Sheet1).Range(A1:D5)对Range对象进行操作myRange.Formula = =RAND()myRange.Font.Bold = TrueEnd Sub示例说明:可以设置Range对象变量来引用单元格区域,然后对该变量所代表的单元格区域进行操作。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-03 清除单元格示例05-03-01清除单元格中的内容(ClearContents方法)Sub testClearContents()MsgBox 清除指定单元格区域中的内容Worksheets(1).Range(A1:H8).ClearContentsEnd Sub示例05-03-02清除单元格中的格式(ClearFormats方法)Sub testClearFormats()MsgBox 清除指定单元格区域中的格式Worksheets(1).Range(A1:H8).ClearFormatsEnd Sub示例05-03-03清除单元格中的批注(ClearComments方法)Sub testClearComments()MsgBox 清除指定单元格区域中的批注Worksheets(1).Range(A1:H8).ClearCommentsEnd Sub示例05-03-04清除单元格中的全部,包括内容、格式和批注(Clear方法)Sub testClear()MsgBox 彻底清除指定单元格区域Worksheets(1).Range(A1:H8).ClearEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-04 Range和CellsSub test()设置单元格区域A1:J10的边框线条样式With Worksheets(1).Range(.Cells(1, 1), _.Cells(10, 10).Borders.LineStyle = xlThickEnd WithEnd Sub示例说明:可用 Range(cell1, cell2) 返回一个 Range 对象,其中cell1和cell2为指定起始和终止位置的Range对象。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-05 选取单元格区域(Select方法)Sub testSelect()选取单元格区域A1:D5Worksheets(Sheet1).Range(A1:D5).SelectEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-06 基于所选区域偏离至另一区域(Offset属性)示例05-06-01Sub testOffset()Worksheets(Sheet1).ActivateSelection.Offset(3, 1).SelectEnd Sub示例说明:可用Offset(row, column)(其中row和column为行偏移量和列偏移量)返回相对于另一区域在指定偏移量处的区域。如上例选定位于当前选定区域左上角单元格的向下三行且向右一列处单元格区域。示例05-06-02 选取距当前单元格指定行数和列数的单元格Sub ActiveCellOffice()MsgBox 显示距当前单元格第3列、第2行的单元格中的值MsgBox ActiveCell.Offset(3, 2).ValueEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-07 调整区域的大小(Resize属性)Sub ResizeRange()Dim numRows As Integer, numcolumns As IntegerWorksheets(Sheet1).ActivatenumRows = Selection.Rows.Countnumcolumns = Selection.Columns.CountSelection.Resize(numRows + 1, numcolumns + 1).SelectEnd Sub示例说明:本示例调整所选区域的大小,使之增加一行一列。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-08 选取多个区域(Union方法)Sub testUnion()Dim rng1 As Range, rng2 As Range, myMultiAreaRange As RangeWorksheets(sheet1).ActivateSet rng1 = Range(A1:B2)Set rng2 = Range(C3:D4)Set myMultiAreaRange = Union(rng1, rng2)myMultiAreaRange.SelectEnd Sub示例说明:可用 Union(range1, range2, .) 返回多块区域,即该区域由两个或多个连续的单元格区域所组成。如上例创建由单元格区域A1:B2和C3:D4组合定义的对象,然后选定该定义区域。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-09 激活已选区域中的单元格Sub ActivateRange()MsgBox 选取单元格区域B2:D6并将C4选中ActiveSheet.Range(B3:D6).SelectRange(C5).ActivateEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-10 选取指定条件的单元格(SpecialCells方法)Sub SelectSpecialCells()MsgBox 选择当前工作表中所有公式单元格ActiveSheet.Cells.SpecialCells(xlCellTypeFormulas).SelectEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-11 选取矩形区域(CurrentRegion属性)选取包含当前单元格的矩形区域该区域周边为空白行和空白列Sub SelectCurrentRegion()MsgBox 选取包含当前单元格的矩形区域ActiveCell.CurrentRegion.SelectEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-12 选取当前工作表中已用单元格(UsedRange属性)选取当前工作表中已使用的单元格区域Sub SelectUsedRange()MsgBox 选取当前工作表中已使用的单元格区域 _& vbCrLf & 并显示其地址ActiveSheet.UsedRange.SelectMsgBox ActiveSheet.UsedRange.AddressEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-13 选取最边缘单元格(End属性)选取最下方的单元格Sub SelectEndCell()MsgBox 选取当前单元格区域内最下方的单元格ActiveCell.End(xlDown).SelectEnd Sub示例说明:可以改变参数xlDown以选取最左边、最右边、最上方的单元格。- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-14设置当前单元格的前一个单元格和后一个单元格的值Sub SetCellValue()MsgBox 将当前单元格中前面的单元格值设为我前面的单元格 & vbCrLf _& 后面的单元格值设为我后面的单元格ActiveCell.Previous.Value = 我前面的单元格ActiveCell.Next.Value = 我后面的单元格End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-15确认所选单元格区域中是否有公式(HasFormula属性)Sub IfHasFormula()If Selection.HasFormula = True ThenMsgBox 所选单元格中都有公式ElseMsgBox 所选单元格中,部分单元格没有公式End IfEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-16 公式单元格操作示例05-16-01获取与运算结果单元格有直接关系的单元格Sub CalRelationCell()MsgBox 选取与当前单元格的计算结果相关的单元格ActiveCell.DirectPrecedents.SelectEnd Sub示例05-16-02追踪公式单元格Sub Cal1()MsgBox 选取计算结果单元格相关的所有单元格ActiveCell.Precedents.SelectEnd SubSub TrackCell()MsgBox 追踪运算结果单元格ActiveCell.ShowPrecedentsEnd SubSub DelTrack()MsgBox 删除追踪线ActiveCell.ShowPrecedents Remove:=TrueEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-17 复制单元格(Copy方法)Sub CopyRange()MsgBox 在单元格B7中写入公式后,将B7的內容复制到C7:D7內Range(B7).Formula = =Sum(B3:B6)Range(B7).Copy Destination:=Range(C7:D7)End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-18获取单元格行列值(Row属性和Column属性)Sub RangePosition()MsgBox 显示所选单元格区域的行列值MsgBox 第 & Selection.Row & 行 & Selection.Column & 列End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-19获取单元格区域的单元格数及行列数(Rows属性、Columns属性和Count属性)Sub GetRowColumnNum()MsgBox 显示所选取单元格区域的单元格数、行数和列数MsgBox 单元格区域中的单元格数为: & Selection.CountMsgBox 单元格区域中的行数为: & Selection.Rows.CountMsgBox 单元格区域中的列数为: & Selection.Columns.CountEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-20设置单元格中的文本格式示例05-20-01 对齐文本Sub HorizontalAlign()MsgBox 将所选单元格区域中的文本左右对齐方式设为居中Selection.HorizontalAlignment = xlHAlignCenterEnd SubSub VerticalAlign()MsgBox 将所选单元格区域中的文本上下对齐方式设为居中Selection.RowHeight = 36Selection.VerticalAlignment = xlVAlignCenterEnd Sub示例05-20-02 缩排文本(InsertIndent方法)Sub Indent()MsgBox 将所选单元格区域中的文本缩排值加1Selection.InsertIndent 1MsgBox 将缩排值恢复Selection.InsertIndent -1End Sub示例05-20-03 设置文本方向(Orientation属性)Sub ChangeOrientation()MsgBox 将所选单元格中的文本顺时针旋转45度Selection.Orientation = 45MsgBox 将文本由横向改为纵向Selection.Orientation = xlVerticalMsgBox 将文本方向恢复原值Selection.Orientation = xlHorizontalEnd Sub示例05-20-04自动换行(WrapText属性)Sub ChangeRow()Dim iMsgBox 将所选单元格设置为自动换行i = Selection.WrapTextSelection.WrapText = TrueMsgBox 恢复原状Selection.WrapText = iEnd Sub示例05-20-05将比单元格列宽长的文本缩小到能容纳列宽大小(ShrinkToFit属性)Sub AutoFit()Dim iMsgBox 将长于列宽的文本缩到与列宽相同i = Selection.ShrinkToFitSelection.ShrinkToFit = TrueMsgBox 恢复原状Selection.ShrinkToFit = iEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-21设置条件格式(FormatConditions属性)Sub FormatConditions()MsgBox 在所选单元格区域中将单元格值小于10的单元格中的文本变为红色Selection.FormatConditions.Add Type:=xlCellValue, _Operator:=xlLessEqual, Formula1:=10Selection.FormatConditions(1).Font.ColorIndex = 3MsgBox 恢复原状Selection.FormatConditions(1).Font.ColorIndex = xlAutomaticEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-22插入批注(AddComment方法)Sub EnterComment()MsgBox 在当前单元格中输入批注ActiveCell.AddComment (Hello)ActiveCell.Comment.Visible = TrueEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-23隐藏/显示单元格批注Sub CellComment()MsgBox 切换当前单元格批注的显示和隐藏状态ActiveCell.Comment.Visible = Not (ActiveCell.Comment.Visible)End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-24改变所选单元格的颜色Sub ChangeColor()Dim iro As IntegerMsgBox 将所选单元格的颜色改为红色iro = Selection.Interior.ColorIndexSelection.Interior.ColorIndex = 3MsgBox 将所选单元格的颜色改为蓝色Selection.Interior.Color = RGB(0, 0, 255)MsgBox 恢复原状Selection.Interior.ColorIndex = iroEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-25改变单元格的图案Sub ChangePattern()Dim p, pc, iMsgBox 依Pattern常数值的顺序改变所选单元格的图案p = Selection.Interior.Patternpc = Selection.Interior.PatternColorIndexFor i = 9 To 16With Selection.Interior.Pattern = i.PatternColor = RGB(255, 0, 0)End WithMsgBox 常数值 & iNext iMsgBox 恢复原状Selection.Interior.Pattern = pSelection.Interior.PatternColorIndex = pcEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-26合并单元格Sub MergeCells()MsgBox 合并单元格A2:C2,并将文本设为居中对齐Range(A2:C2).SelectWith Selection.MergeCells = True.HorizontalAlignment = xlCenterEnd WithEnd Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-27限制单元格移动的范围Sub ScrollArea1()MsgBox 将单元格的移动范围限制在单元格区域B2:D6中ActiveSheet.ScrollArea = B2:D6End SubSub ScrollArea2()MsgBox 解除移动范围限制ActiveSheet.ScrollArea = End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-28获取单元格的位置(Address属性)Sub GetAddress()MsgBox 显示所选单元格区域的地址MsgBox 绝对地址: & Selection.AddressMsgBox 行的绝对地址: & Selection.Address(RowAbsolute:=False)MsgBox 列的绝对地址: & Selection.Address(ColumnAbsolute:=False)MsgBox 以R1C1形式显示: & Selection.Address(ReferenceStyle:=xlR1C1)MsgBox 相对地址: & Selection.Address(False, False)End Sub- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -示例05-29删除单元格区域(Delete方法)Sub DeleteRange()MsgBox 删除单元格区域C2:D6后,右侧的单元格向左移动ActiveSheet.Range(C2:D6).Delete (xlShiftToLeft)End SubEXCEL Range对象基本操作应用示例(2) 2009-09-29 14:51 Range对象基本操作应用示例(2)(2008-06-08 11:13:16)标签:杂谈 第五章 Range对象基本操作应用示例(2) - - - - - - - - - - - - - - - - - - - -小结下面对Range对象的一些常用属性和方法进行简单的小结。1、Activate与Select试验下面的过程:Sub SelectAndActivate()Range(B3:E10).SelectRange(C5).ActivateEnd Sub其结果如下图所示:图05-01:Select与ActivateSelection指单元格区域B3:E10,而ActiveCell则是单元格C5;ActiveCell代表单个的单元格,而Selection则可以代表单个单元格,也可以代表单元格区域。2、Range属性可以使用Application对象的Range属性引用Range对象,如Application.Range(“B2”) 代表当前工作表中的单元格B2若引用当前工作表中的单元格,也可以忽略前面的Application对象。Range(“A1:D10”) 代表当前工作表中的单元格区域A1:D10Range(“A1:A10,C1:C10,E1:E10”) 代表当前工作表中非连续的三个区域组成的单元格区域Range属性也接受指向单元格区域对角的两个参数,如:Range(“A1”,”D10”) 代表单元格区域A1:D10当然,Range属性也接受单元格区域名称,如:Range(“Data”) 代表名为Data的数据区域Range属性的参数可以是对象也可以是字符串,如:Range(“A1”,Range(“LastCell”)3、单元格引用的快捷方式可以在引用区域两侧加上方括号来快速引用单元格区域,如:B2A1:D10A1:A10,C1:C10,E1:E10Data但其引用的是绝对区域。4、Cells属性可以使用Cells属性来引用Range对象。如:ActiveSheet.CellsApplication.Cells 引用当前工作表中的所有单元格Cell(2,2)Cell(2,”B”) 引用单元格B2Range(Cells(1,1),Cells(10,5) 引用单元格区域A1:E10若想在一个单元格区域中循环时,使用Cells属性是很方便的。也可以使用Cells属性进行相对引用,如:Range(“D10:G20”).Cells(2,3) 表示引用单元格区域D10:G20中第2行第3列的单元格,即单元格F11也可使用语句:Range(“D10”).Cells(2,3)达到同样的引用效果。5、Offset属性Offset属性基于当前单元格按所给参数进行偏移,与Cells属性不同的是,它基于0即基准单元格为0,如:Range(“A10”).Cells(1,1)和Range(“A10”).Offset(0,0)都表示单元格A10当想引用于基准单元格区域同样大小的单元格区域时,则Offset属性是有用的。6、Resize属性可使用Resize属性获取相对于原单元格区域左上角单元格指定大小的区域。7、SpecialCells方法SpecialCells方法对应于“定位条件”对话框,如图05-02所示:图05-02:“定位条件”对话框8、CurrentRegion属性使用CurrentRegion属性可以选取当前单元格所在区域,即周围是空行和空列所围成的矩形区域,等价于“Ctrl+Shift+*”快捷键。9、End属性End属性所代表的操作等价于“Ctrl+方向箭”的操作,使用常量xlUp、xlDown、xlToLeft和xlToRight分别代表上、下、左、右箭。10、Columns属性和Rows属性Columns属性和Rows属性分别返回单元格区域中的所有列和所有行。11、Areas集合在多个非连续的单元格区域中使用Columns属性和Rows属性时,只是返回第一个区域的行或列,如:Range(“A1:B5,C6:D10,E11:F15”).Rows.Count将返回5。此时应使用Areas集合来返回区域中每个块的地址,如:For Each Rng In Range(“A1:B5,C6:D10,E11:F15”).AreasMsgBox Rng.AddressNext Rng12、Union方法和Intersect方法当想从两个或多个单元格区域中生成一个单元格区域时,使用Union方法;当找到两个或多个单元格区域共同拥有的单元格区域时,使用Intersect方法。操作单元格或单元格区域有很多有用的技巧,这需要在实践中总结和归纳。有关单元格区域的操作也可参见在VBA代码中引用Excel工作表中单元格区域的方式小结和使用VBA代码选择单元格/区域。vb操作EXCEL对CELLS的引用 2009-07-25 16:50 使用 Visual Basic 的普通任务是指定单元格或单元格区域,然后对该单元格或单元格区域进行一些操作,如输入公式或更改格式。通常用一条语句就能完成操作,该语句可标识单元格,还可更改某个属性或应用某个方法。在 Visual Basic 中,Range 对象既可表示单个单元格,也可表示单元格区域。下列主题说明了标识和处理 Range 对象最常用的方法。用 A1 样式记号引用单元格和单元格区域可使用 Range 属性来引用 A1 引用样式中的单元格或单元格区域。下述子程序将单元格区域 A1:D5 的字体设置为加粗。Sub FormatRange() Workbooks(Book1).Sheets(Sheet1).Range(A1:D5).Font.Bold = TrueEnd Sub下表演示了使用 Range 属性的一些 A1 样式引用。引用 含义Range(A1) 单元格 A1Range(A1:B5) 从单元格 A1 到单元格 B5 的区域Range(C5:D9,G9:H16) 多块选定区域Range(A:A) A 列Range(1:1) 第一行Range(A:C) 从 A 列到 C 列的区域Range(1:5) 从第一行到第五行的区域Range(1:1,3:3,8:8) 第 1、3 和 8 行Range(A:A,C:C,F:F) A 、C 和 F 列用编号引用单元格通过使用行列编号,可用 Cells 属性来引用单个单元格。该属性返回代表单个单元格的 Range 对象。下例中,Cells(6,1) 返回 Sheet1 上的单元格 A6,然后将 Value 属性设置为 10。Sub EnterValue() Worksheets(Sheet1).Cells(6, 1).Value = 10End Sub因为可用变量替代编号,所以 Cells 属性非常适合于在单元格区域中循环,如下例所示。Sub CycleThrough() Dim Counter As Integer For Counter = 1 To 20 Worksheets(Sheet1).Cells(Counter, 3).Value = Counter Next CounterEnd Sub注意 如果要同时更改某一单元格区域中所有单元格的属性或对其应用方法,可使用 Range 属性。有关详细信息,请参阅用 A1 样式记号引用单元格。引用行和列可用 Rows 属性或 Columns 属性来处理整行或整列。这两个属性返回代表单元格区域的 Range 对象。下例中,用 Rows(1) 返回 Sheet1 上的第一行,然后将单元格区域的 Font 对象的 Bold 属性设置为 True。Sub RowBold() Worksheets(Sheet1).Rows(1).Font.Bold = TrueEnd Sub下表举例说明了使用 Rows 和 Columns 属性的一些行和列的引用。引用 含义Rows(1) 第一行Rows 工作表上所有的行Columns(1) 第一列Columns(A) 第一列Columns 工作表上所有的列若要同时处理若干行或列,请创建一个对象变量并使用 Union 方法,将对 Rows 属性或 Columns 属性的多个调用组合起来。下例将活动工作簿中第一张工作表上的第一行、第三行和第五行的字体设置为加粗。Sub SeveralRows() Worksheets(Sheet1).Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5) myUnion.Font.Bold = TrueEnd Sub用快捷记号引用单元格可用方括号将 A1 引用样式或命名区域括起来,作为 Range 属性的快捷方式。这样就不必键入单词“Range”或使用引号,如下例所示。Sub ClearRange() Worksheets(Sheet1).A1:B5.ClearContentsEnd SubSub SetValue() MyRange.Value = 30End Sub引用命名区域用名称比用 A1 样式记号更容易标识单元格区域。若要命名选定的单元格区域,请单击编辑栏左端的名称框,键入名称,再按 Enter。引用命名区域下例引用了名为“MyBook.xls”的工作簿中的名为“MyRange”的单元格区域。Sub FormatRange() Range(MyBook.xls!MyRange).Font.Italic = TrueEnd Sub下例引用名为“Report.xls”的工作簿中的特定工作表单元格区域“Sheet1!Sales”。Sub FormatSales() Range(Report.xlsSheet1!Sales).BorderAround Weight:=xlthinEnd Sub若要选定命名区域,请用 GoTo 方法,该方法将激活工作簿和工作表,然后选定该区域。Sub ClearRange() Application.Goto Reference:=MyBook.xls!MyRange Selection.ClearContentsEnd Sub下例显示对于活动工作簿将如何编写相同的过程。Sub ClearRange() Application.Goto Reference:=MyRange Selection.ClearContentsEnd Sub在命名区域中的单元格上循环下例用 For Each.Next 循环语句在命名区域中的每一个单元格上循环。如果该区域中的任一单元格的值超过 limit 的值,就将该单元格的颜色更改为黄色。Sub ApplyColor() Const Limit As Integer = 25 For Each c In Range(MyRange) If c.Value Limit Then c.Interior.ColorIndex = 27 End If Next cEnd Sub相对于其他单元格来引用单元格处理相对于另一个单元格的某一单元格的常用方法是使用 Offset 属性。下例中,将位于活动工作表上活动单元格下一行和右边三列的单元格的内容设置为双下划线格式。Sub Underline() ActiveCell.Offset(1, 3).Font.Underline = xlDoubleEnd Sub注意 可录制使用 Offset 属性(而不是绝对引用)的宏。在“工具”菜单上,指向“宏”,再单击“录制新宏”,然后单击“确定”,再单击录制宏工具栏上的“相对引用”按钮。若要在单元格区域中循环,请在循环中将变量与 Cells 属性一起使用。下例以 5 为步长,用 5 到 100 之间的值填充第三列的前 20 个单元格。变量 counter 用作 Cells 属性的行号。Sub CycleThrough() Dim counter As Integer For counter = 1 To 20 Worksheets(Sheet1).Cells(counter, 3).Value = counter * 5 Next counterEnd Sub用 Range 对象引用单元格如果将对象变量设置为 Range 对象,即可用变量名方便地操作单元格区域。下述过程创建了对象变量 myRange,然后将活动工作簿中 Sheet1 上的单元格区域 A1:D5 赋予该变量。随后的语句用该变量代替该区域对象,以修改该区域的属性。Sub Random() Dim myRange As Range Set myRange = Worksheets(Sheet1).Range(A1:D5) myRange.Formula = =RAND() myRange.Font.Bold = TrueEnd Sub引用工作表上的所有单元格如果对工作表应用 Cells 属性时不指定编号,该属性将返回代表工作表上所有单元格的 Range 对象。下述 Sub 过程清除活动工作簿中 Sheet1 上的所有单元格的内容。Sub ClearSheet() Worksheets(Sheet1).Cells.ClearContentsEnd Sub引用多个单元格区域使用适当的方法可以很容易地同时引用多个单元格区域。可用 Range 和 Union 方法引用任意组合的单元格区域;用 Areas 属性可引用工作表上选定的一组单元格区域。使用 Range 属性通过在两个或多个引用之间放置逗号,可使用 Range 属性来引用多个单元格区域。下例清除了 Sheet1 上三个单元格区域的内容。Sub ClearRanges() Worksheets(Sheet1).Range(C5:D9,G9:H16,B14:D18). _ ClearContentsEnd Sub命名区域使得用 Range 属性处理多个单元格区域更为容易。下例可在三个命名区域处于同一工作表时运行。Sub ClearNamed() Range(MyRange, YourRange, HisRange).ClearContentsEnd Sub使用 Union 方法用 Union 方法可将多个单元格区域组合到一个 Range 对象中。下例创建了名为 myMultipleRange 的 Range 对象,并将其定义为单元格区域 A1:B2 和 C3:D4 的组合,然后将该组合区域的字体设置为加粗。Sub MultipleRange() Dim r1, r2, myMultipleRange As Range Set r1 = Sheets(Sheet1).Range(A1:B2) Set r2 = Sheets(Sheet1).Range(C3:D4) Set myMultipleRange = Union(r1, r2) myMultipleRange.Font.Bold = TrueEnd Sub使用 Areas 属性可用 Areas 属性引用选定的单元格区域或多块选定区域中的区域集合。下述过程计算选定区域中的块数目,如果有多个块,就显示一则警告消息。Sub FindMultiple() If Selection.Areas.Count 1 Then MsgBox Cannot do this to a multiple selection. End IfEnd Sub
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!