Range 属性 - Microsoft Excel Visual Basic 2002 参考

返回介绍

Range 属性

发布于 2019-08-07 字数 8041 浏览 747 评论 0

全部显示

Range 属性

应用于 AllowEditRange 对象的 Range 属性。

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

expression.Range

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

应用于 ApplicationRangeWorksheet 对象的 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。

应用于 AutoFilterHyperlinkPivotCell以及 SmartTag 对象的 Range 属性。

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

expression.Range

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

应用于 GroupShapesShapes 对象的 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

示例

应用于 ApplicationRangeWorksheet 对象。

本示例将 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 PivotCellSmartTag 对象。

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

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

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

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

应用于 GroupShapesShapes 对象。

本示例设置 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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

目前还没有任何评论,快来抢沙发吧!