来自this question我试图获取并设置传统表单字段复选框(MS Word 2013)的值 - 而不会在文档上奇怪地滚动/跳转。对于文本字段,可以通过
执行myField = ActiveDocument.Bookmarks("myField").Range.Fields(1).Result ' get
ActiveDocument.Bookmarks("myField").Range.Fields(1).Result.Text = myValue ' set
但这对复选框不起作用。我可以采取哪些命令来相应地访问复选框而不会出现奇怪的跳转?
答案 0 :(得分:1)
我对此进行了一些测试,看起来你只需使用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
也能正常工作。
尝试一下,看看它是否可能为您解决问题!