【发布时间】:2016-09-15 16:18:28
【问题描述】:
这是我在 Excel 中用于控制 Word 文档并与一些数据一起发布的代码。 我想创建一些不同样式的文本,但不断收到运行时错误 430(类不支持自动化或不支持预期接口)
代码如下:
'Create the word document
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
For i = 2 To 94
'Heading 1
If myRange(i - 1, 1) <> myRange(i, 1) Then
objSelection.TypeParagraph
objSelection.Style = ActiveDocument.Styles("Heading 2")
objSelection.TypeText Text:=myRange(i, 1)
End If
objSelection.TypeParagraph
objSelection.Style = ActiveDocument.Styles("Heading 3")
objSelection.TypeText Text:=myRange(i, 2)
For k = 3 To 12
objSelection.TypeParagraph
objSelection.Style = ActiveDocument.Styles("Heading 4")
objSelection.TypeText Text:=myRange(1, k)
objSelection.TypeParagraph
objSelection.Style = ActiveDocument.Styles("Normal")
objSelection.TypeText Text:=myRange(i, k)
Next
Next
【问题讨论】:
-
错误出现在哪一行?
-
一些初步想法:你的
myRange变量,是一个Excel.Range 对象吗?如果是,则您没有为对象提供正确的值。看起来您正在使用Range作为Cell。此外,还有一个您可以在 Excel VBA 中引用的 Word 库。最后,正如Dirk所说,请说明错误发生在哪里 -
我使用了 Word 库。唯一的问题是
objSelection.Style = ActiveDocument.Styles("___")。这是行不通的。其余的工作都很好。