簡體   English   中英

如何在Word 2013 VBA中正確訪問舊版表單字段復選框?

[英]How to properly access Legacy Form Field checkboxes in Word 2013 VBA?

出於這個問題,我試圖獲取並設置“舊版表單字段”復選框(MS Word 2013)的值,而無需在文檔上滾動/跳轉。 對於文本字段,可以通過以下方式執行

myField = ActiveDocument.Bookmarks("myField").Range.Fields(1).Result ' get
ActiveDocument.Bookmarks("myField").Range.Fields(1).Result.Text = myValue ' set

但這不適用於復選框。 我可以采取哪些命令來相應地訪問復選框,而又不會奇怪地跳來跳去?

我對此進行了一些測試,看起來您可以簡單地使用CheckBox.Value屬性訪問復選框的值,而無需更改文檔的焦點。 將以下代碼粘貼到常規模塊中,並測試這兩種訪問文本框值的方式之間的區別。

Public Sub TestCheckboxAccess()

    Dim ctl As FormField

    For Each ctl In ActiveDocument.FormFields

        ' Loop through check boxes in current document
        If ctl.Type = wdFieldFormCheckBox Then

            ' This does not scroll the document
            Debug.Print ctl.CheckBox.Value

            ' This does scroll the document
            'Debug.Print ctl.Result

        End If
    Next ctl
End Sub

請注意,在我的系統上,即使不關閉ScreenUpdating此代碼示例也可以工作。

試試看,看看它是否可以為您解決問題!

暫無
暫無

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

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