VBScript:在VBA中使用Shape属性(Excel)

时间:2017-11-25 22:20:27

标签: excel vba controls shapes

我写了一个VBScript来导出.xlsx文件中的数据。下拉控件应该过滤数据。以下代码显示了我的添加方法:

sub AddDropDownElement
    FirstSheet.DropDowns.Add(0, 0, 100, 15).Name = "SheetFilter"

    with FirstSheet.Shapes("SheetFilter")
        .IncrementLeft 20.4
        .IncrementTop 34.2

        .Placement = xlFreeFloating
        .PrintObject = False
        .ListFillRange = ""
        .LinkedCell = ""
        .DropDownLines = 12
        .Display3DShading = False
    End With
end Sub

FirstSheet是" Excel.Application"。

的工作表

执行Increment-methods完美无缺。这些属性在VBScript中是未知的。

1 个答案:

答案 0 :(得分:0)

您的某些属性不是Shape对象的直接成员:有些属于ControlFormat,有些属于DropDown

Sub AddDropDownElement()
    Const DD_NM = "SheetFilter"

    FirstSheet.DropDowns.Add(0, 0, 100, 15).Name = DD_NM

    With FirstSheet.Shapes(DD_NM)
        .IncrementLeft 20.4
        .IncrementTop 34.2
        .Placement = xlFreeFloating
        With .ControlFormat
            .PrintObject = False
            .ListFillRange = ""
            .LinkedCell = ""
            .DropDownLines = 12
        End With
    End With
    FirstSheet.DropDowns(DD_NM).Display3DShading = True

End Sub

在Excel 2013中测试