VBA Excel启动Word文档可以';不要创建可单击的复选框
我有一个Excel文档,在其中我通过单元格循环生成一个带有可单击复选框的word文档。我将1个单元格值作为标题,下一列单元格值作为它旁边需要复选框的值。基本上,这是一个任务列表,我想剪切和粘贴在电子邮件中,以确保他们已经完成。我正在使用后期绑定从Excel生成word文档,我想知道这是否与我的问题有关。我尝试了所有创建复选框的不同示例,通常会收到一条需要对象的错误消息VBA Excel启动Word文档可以';不要创建可单击的复选框,excel,vba,checkbox,ms-word,clickable,Excel,Vba,Checkbox,Ms Word,Clickable,我有一个Excel文档,在其中我通过单元格循环生成一个带有可单击复选框的word文档。我将1个单元格值作为标题,下一列单元格值作为它旁边需要复选框的值。基本上,这是一个任务列表,我想剪切和粘贴在电子邮件中,以确保他们已经完成。我正在使用后期绑定从Excel生成word文档,我想知道这是否与我的问题有关。我尝试了所有创建复选框的不同示例,通常会收到一条需要对象的错误消息 Dim wrdApp As Object Set wrdApp = CreateObject("Word.Applicati
Dim wrdApp As Object
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Add
Set objSelection = wrdApp.Selection
For Row = 2 to lRow
objSelection.TypeText Chr(13) & Cells(Row, 1).Value & Chr(13)
'Here is where I would like to write a checkbox so it is to the left of the column 2 value
objSelection.TypeText Cells(Row, 2).Value)
Next Row
我以前从未从Excel编写过Word,似乎我应该能够用一行简单的代码来编写复选框,但也许我错了
我录制了一个添加复选框的宏,当我尝试此代码时:
Selection.FormFields.Add Range:=Selection.Range, Type:=wdFieldFormCheckBox
我明白了
参数数目错误或属性分配无效
当我试着沿着这些路线走的时候:
wrdDoc.Selection.FormFields.Add Range:=InsertAfter, Type:=wdFieldFormCheckBox
我明白了
对象不支持此属性或方法
试试这样的东西
Selection.FormFields.Add Range:=Selection.Range, Type:=wdFieldFormCheckBox
我明白了
参数数目错误或属性分配无效
感谢您的帮助。谢谢 我认为问题的根源在于,Excel和Word都有
选择
对象,并且Excel自动假定Excel选择是正确的。由于Excel没有表单字段,因此会出现错误。使用wrdApp.Selection.FormFields.Add
并查看这是否有帮助。wrdApp.Selection.FormFields.Add Range:=Selection.Range,Type:=wdFieldFormCheckBox为我提供了错误的参数数或无效的属性分配。删除该范围也会产生相同的错误。我以前从未为Word写过任何东西,所以我真的不确定这样一行代码应该是什么样子。您是否将wrdApp
放在这两个选项的前面?如果您使用的是后期绑定,则不能使用wdFieldFormCheckBox
——您需要与之等效的长数据类型。您可以在Word的VBA编辑器中查询或在帮助中查找。是的,我取出了objSelection引用并用wrdApp.Selection替换了所有引用,并将其用于复选框将编译和运行(我将其从Word中的宏记录中取出,它确实给了我一个复选框),它只是没有给我复选框,它是在所有文本周围加上方框,左边有3个点。wrdApp.Selection.Range.ContentControls.Add(wdContentControlCheckBox)好了,现在您已经更改了您尝试执行的操作。您最初的任务是使用表单字段。现在,您将发布有关内容控件的文章。那完全是另外一回事。。。您可能希望使用问题下方的链接使其与您的实际情况保持最新。