2017-11-25 218 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