Excel VBA教程:Range属性

应用于 AllowEditRange对象的 Range属性。

返回一个Range对象,该对象代表能在受保护的工作表中进行编辑的区域的子集。

expression.Range

expression   必需。该表达式返回一个 AllowEditRange对象。

应用于 Application、Range 和 Worksheet对象的 Range属性。

返回一个Range对象,该对象代表一个单元格或单元格区域。

expression.Range(Cell1, Cell2)

expression   必需。该表达式返回上面的对象之一。

Cell1   Variant 类型,必需。区域名称。必须为 A1 样式引用的宏语言。可包括区域操作符(冒号)、相交区域操作符(空格)或合并区域操作符(逗号)。也可包括货币符号,但它们被忽略掉。可在区域中任一部分使用局部定义名称。如果使用名称,则假定该名称使用的是宏语言。

Cell2   Variant 类型,可选。区域左上角和右下角的单元格。可以是一个包含单个单元格、整列或整行的 Range对象,或是一个用宏语言为单个单元格命名的字符串。

说明

如果在没有对象识别符时使用,则该属性是ActiveSheet.Range 的快捷方式(它返回活动表的一个区域,如果活动表不是一张工作表,则该属性无效)。

当应用于 Range对象时,该属性与 Range对象相关。例如, 如果选中单元格 C3, 那么Selection.Range("B1") 返回单元格 D3,因为它同 Selection属性返回的 Range对象相关。此外,代码ActiveSheet.Range("B1") 总是返回单元格 B1。

应用于 AutoFilter、Hyperlink、PivotCell以及 SmartTag对象的 Range属性。

对于 AutoFilter对象,返回一个Range对象,该对象代表应用了指定的“自动筛选”的区域。对于 Hyperlink对象,返回一个 Range对象,该对象代表与指定的超链接相连的区域。对于 PivotCell对象,返回一个 Range对象,该对象代表应用了指定的数据透视表单元格的区域。对于 SmartTag对象,返回一个 Range对象,该对象代表应用了指定的智能标记的区域。

expression.Range

expression   必需。该表达式返回上面的对象之一。

应用于 GroupShapes 和 Shapes对象的 Range属性。

返回一个ShapeRange对象,该对象代表 Shapes集合中图形的一个子集。

expression.Range(Index)

expression   必需。该表达式返回上面的对象之一。

Index   Variant 类型,必需。包含在该区域中的各单独图形。可以是表示图形索引号的整数,或表示图形名称的字符串,或包含整数或字符串的数组。

说明

虽然可用Range属性返回任意数目的图形,但是如果只想返回集合的单个成员,那么用Item方法将更为简单。例如,用Shapes(1) 比用Shapes.Range(1) 更简单。

若要将 Index 指定为整数数组或字符串数组,请用 Array函数。例如,下列指令返回了以名称指定的两个图形。


Dim arShapes() As Variant
Dim objRange As Object
arShapes = Array("Oval 4", "Rectangle 5")
Set objRange = ActiveSheet.Shapes.Range(arShapes)

在 Microsoft Excel 中,不能用本属性返回包含工作表上的所有 Shape对象的 ShapeRange对象。如果要达到该目的,可用下列代码:


Worksheets(1).Shapes.Select        ' select all shapes
set sr = Selection.ShapeRange    ' create ShapeRange

Excel VBA教程:Range属性·示例

应用于 Application、Range 和 Worksheet对象。

本示例将 Sheet1 上 A1 单元格的值设置为 3.14159。


Worksheets("Sheet1").Range("A1").Value = 3.14159

本示例在 Sheet1 的 A1 单元格中创建一个公式。


Worksheets("Sheet1").Range("A1").Formula = "=10*RAND()"

本示例在 Sheet1 的单元格区域 A1:D10 上进行循环。如果某个单元格的值小于 0.001,则此代码将用 0(零)来取代该值。


For Each c in Worksheets("Sheet1").Range("A1:D10")
    If c.Value < .001 Then
        c.Value = 0
    End If
Next c

本示例在名为“TestRange”的区域上进行循环,并显示该区域中空白单元格的个数。


numBlanks = 0
For Each c In Range("TestRange")
    If c.Value = "" Then
        numBlanks = numBlanks + 1
    End If
Next c
MsgBox "There are " & numBlanks & " empty cells in this range"

本示例将 Sheet1 中单元格区域 A1:C5 上的字体样式设置为斜体。本示例使用 Range属性的语法 2。


Worksheets("Sheet1").Range(Cells(1, 1), Cells(5, 3)). _
    Font.Italic = True

应用于 AutoFilter、 Hyperlink、 PivotCell 和 SmartTag对象。

下面的示例将应用于工作表 Crew 的“自动筛选”的地址保存在变量中。


rAddress = Worksheets("Crew").AutoFilter.Range.Address

本示例滚动工作簿窗口,直至超链接对象所对应的单元格区域位于活动窗口的左上角。


Workbooks(1).Activate
Set hr = ActiveSheet.Hyperlinks(1).Range
ActiveWindow.ScrollRow = hr.Row
ActiveWindow.ScrollColumn = hr.Column

应用于 GroupShapes 和 Shapes对象。

本示例设置myDocument 中第一个图形和第三个图形的填充图案。


Set myDocument = Worksheets(1)
myDocument.Shapes.Range(Array(1, 3)) _
    .Fill.Patterned msoPatternHorizontalBrick

本示例设置myDocument 中图形“Oval 4”和“Rectangle 5”的填充图案。


Dim arShapes() As Variant
Dim objRange As Object
Set myDocument = Worksheets(1)
arShapes = Array("Oval 4", "Rectangle 5")
Set objRange = myDocument.Shapes.Range(arShapes)
objRange.Fill.Patterned msoPatternHorizontalBrick

本示例设置myDocument 中第一个图形的填充图案。


Set myDocument = Worksheets(1)
Set myRange = myDocument.Shapes.Range(1)
myRange.Fill.Patterned msoPatternHorizontalBrick

本示例先创建了一个包含myDocument 中所有自选图形的数组,并用该数组定义了一个图形区域,然后在该区域水平分布这些图形。


Set myDocument = Worksheets(1)
With myDocument.Shapes
    numShapes = .Count
    If numShapes > 1 Then
        numAutoShapes = 1
        ReDim autoShpArray(1 To numShapes)
        For i = 1 To numShapes
            If .Item(i).Type = msoAutoShape Then
                autoShpArray(numAutoShapes) = .Item(i).Name
                numAutoShapes = numAutoShapes + 1
            End If
        Next
        If numAutoShapes > 1 Then
            ReDim Preserve autoShpArray(1 To numAutoShapes)
            Set asRange = .Range(autoShpArray)
            asRange.Distribute msoDistributeHorizontally, False
        End If
    End If
End With

上页:Excel VBA教程:RadarAxisLabels属性 下页:Excel VBA教程:RangeSelection属性

Excel VBA教程:Range属性

Excel VBA教程:RangeSelection属性 Excel VBA教程:ReadingOrder属性
Excel VBA教程:ReadOnly属性 Excel VBA教程:ReadOnlyRecommended属性
Excel VBA教程:Ready属性 Excel VBA教程:获取有关 Macintosh 关键字的帮助
Excel VBA教程:RecentFiles属性 Excel VBA教程:Recipients属性
Excel VBA教程:Recognize属性 Excel VBA教程:RecordCount属性
Excel VBA教程:RecordRelative属性 Excel VBA教程:Recordset属性
Excel VBA教程:ReferenceStyle属性 Excel VBA教程:RefersTo属性
Excel VBA教程:RefersToLocal属性 Excel VBA教程:RefersToR1C1属性
Excel VBA教程:RefersToR1C1Local属性 Excel VBA教程:RefersToRange属性
Excel VBA教程:RefreshDate属性 Excel VBA教程:Refreshing属性
版权所有 © 中山市飞娥软件工作室 证书:粤ICP备09170368号