2017-11-25 777 views
-1

我编写了一个VBScript来导出.xlsx文件中的数据。下拉控件应该过滤数据。以下代码显示了我的添加方法:VBScript:在VBA中使用Shape属性(Excel)

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中的属性是未知的。

回答

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中的原则

+0

你是正确的,但如“Placement”属性未知。 – Sebastian

+0

您是否添加了对Excel的引用,或者您是否使用了后期绑定?如果后期绑定,你是否定义了'xlFreeFloating'? –

+0

失败信息错误。正如你所说'xlFreeFloating'没有被定义。 – Sebastian