簡體   English   中英

Formfields.BookMarks.get_Item()。Checkbox.Value不起作用(自動化字)

[英]Formfields.BookMarks.get_Item().Checkbox.Value doesn't work (automation word)

我試圖通過C#中的自動化更改單詞Checkbox(來自開發人員選項卡)的值,但未成功。 我嘗試了不同的方法,但我在互聯網上搜索時唯一能找到的方法是:

在開發人員模式下,通過單擊復選框的屬性來查找復選框的名稱

object oCheckbox = "Checkbox_name"

document_name.FormFields.get_Item(ref oCheckbox).CheckBox.Value = true/false;

但每當我執行代碼時,我都會收到以下錯誤(集合的請求成員不存在),這意味着如果我理解正確,我的文檔中沒有名為“Checkbox_name”的復選框。

我還嘗試使用相同的名稱為復選框添加書簽並執行:

document_name.BookMarks.get_Item(ref oCheckbox).CheckBox.Value但它也不起作用......

如果您通過單擊開發人員選項卡中顯示的復選框插入了一個復選框,那么我假設您使用的是Word 2007或更高版本。

而且,如果是這種情況,那么您插入的內容不是表單字段,而是內容控件。 因此,如果您在VBA編輯器中的立即窗口中輸入以下內容:

?ActiveDocument.Content.FormFields.Count

...它將打印“0”。 如果您嘗試:

?ActiveDocument.Content.ContentControls.Count

...它應該打印一個大於零的數字,具體取決於您插入的數量。

要插入舊式表單字段復選框,請單擊復選框圖標旁邊的“帶工具文件夾”圖標 - 這將刪除更多類型的控件,包括“舊版窗體”和“ActiveX控件”。 每個組中都有一個復選框,但它是第一個組(“Legacy Forms”),它將創建顯示在FormFields集合中的復選框。

如果可能,我建議使用內容控件,因為可能不會永久支持舊式表單字段。

暫無
暫無

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

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