WPS 加载项开发 > 表格 API 参考 > Shapes > 属性 > Shapes.Range 属性
返回一个 ShapeRange 对象,它代表 Shapes 集合中形状的子集。

语法

表达式.Range(Index)

表达式   一个代表 Shapes 对象的变量。

参数

名称必选/可选数据类型说明
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)

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

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

示例

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


请参阅