VBA使用Excel 2016填充Word 2016内容控件

问题描述 投票:-1回答:2

我正在尝试使用Excel填充具有内容控制文本框的Word.dotm文档。

在Excel中,我创建了单词对象并打开文件,但是我不知道如何实际访问控件。

在Word doc的VBA中,我可以通过]访问它们>

.SelectContentControlsByTitle("control").Item(1).Range.Text = "..."

但是在Excel中使用对象不起作用。

这是我在Excel中尝试过的代码:

Dim objWord         As Object
Dim objDoc          As Object
Dim objSelection    As Object
Dim ctrl            As ContentControl 'Not an Excel type

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Open(ThisWorkbook.Path & "\MyDoc.dotm")

objWord.Visible = True

Set objSelection = objWord.Selection

'Doesn't work
objDoc.SelectContentControlsByTitle("control").Item(1).Range.Text = "..."        

'Doesn't work either, but tried nonetheless
For Each ctrl In objDoc.contentcontrols
    If ctrl.Title = "date" Then
        ctrl.Range.Text = "!"
    End If
 Next ctrl

我正在尝试使用Excel填充具有内容控制文本框的Word.dotm文档。在Excel中,我创建了单词对象并打开文件,但是我不知道如何实际访问...

excel vba ms-word
2个回答
0
投票

在任何宏中,尤其是在跨程序宏中,请避免使用Selection对象,而应使用Range


0
投票

尽管您已将ctrl声明为ContentControl,但它不是Word内容控件,这就是For Each循环将不起作用的原因。

© www.soinside.com 2019 - 2024. All rights reserved.