簡體   English   中英

如何從VBA中的“舊版”下拉結果填充ComboBox(Word)

[英]How to populate a ComboBox from a Legacy dropdown result in VBA (Word)

我有一個包含舊版DropDownListFormField )的Word表單 (不是用戶表單 )。

我可以使用為它們設置的書簽來訪問它們。 (例如:對於帶有書簽“ bookmark”的書簽)

ActiveDocument.FormFields("bookmark")

我使用Legacy下拉列表而不是ActiveX ComboBox,因為我需要使用彼此的Result來更改其他Legacy下拉列表的值,依此類推。

例如 :

If ActiveDocument.FormFields("bookmark").Result <> "whatever" Then
    Select Case ActiveDocument.FormFields("bookmark").Result
        Case "Test"
            With ActiveDocument.FormFields("bookmark2").DropDown.ListEntries
                .Clear
                .Add "Whatever string I want"
                .Add "Another string I need"
            End With
    'Let's not put them all but there is more cases than one
    End Select
End If

換句話說,下一個的內容取決於前一個的內容。

話雖如此,我現在需要對這些Dropdowns的最后一個進行一些選擇。 問題是,我無法根據已閱讀的內容對“ 舊版下拉菜單”進行多選。 根據我的閱讀,仍然可以使用ActiveX ComboBox

問題是,我進行“依賴”下拉菜單的方式是,當用戶選擇一個值時,調用模塊執行上述代碼。 不幸的是,我不能在這些模塊中使用ActiveX ComboBox ,只能在ThisDocument中使用 如果可以的話,我只需要更改

ActiveDocument.FormFields("bookmark2").DropDown.ListEntries

對於

Me.ComboBoxWhatever

使用AddItem而不是Add,然后從那里查找如何進行多重選擇。 但是我不能。

根據我已經嘗試/閱讀的內容,在用戶從“ 舊版下拉菜單”中選擇一個值之后,無法從ThisDocument調用Sub方法(此處將使用ComboBox執行我需要的代碼)。

當用戶從“ 舊式下拉菜單”中選擇一個值時,如何檢查結果並使用適當的值填充ActiveX ComboBox ,以便用戶可以從ComboBox中選擇多個選項?

編輯:辛迪·梅斯特(Cindy Meister)的回答對任何ActiveX控件(例如ListBox等)都很好。

您可以通過包含它的InlineShape或Shape對象訪問ThisDocument外部的ActiveX控件。 Word通過將非Word內容“包裝”在圖形對象中來管理它們。

這里有一些示例代碼,演示了如何使用“常規”模塊中的過程將項目添加到組合框列表的末尾。 請注意,它如何使用OLEFormat.Object來“進入” ActiveX控件的屬性和方法。

Sub AddItemToExistingCombo()
    Dim doc As word.Document
    Dim obj1 As String, oIndex As Long
    Dim of As word.OLEFormat
    Dim cb As ComboBox

    Set doc = ActiveDocument
    Set of = ActiveDocument.InlineShapes(1).OLEFormat
    'Set of = ActiveDocument.Bookmarks("combobox").Range.InlineShapes(1).OLEFormat
    Set cb = of.Object
    If Not cb Is Nothing Then
        oIndex = cb.ListCount
        obj1 = "item" & oIndex + 1
        cb.AddItem obj1, oIndex
    End If
End Sub

當然,使用InlineShape的索引值不是理想的,您可能需要選擇它並添加書簽。 為此,進入“設計模式”,選擇控件並插入書簽。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM