子程序不会打开MS Word(VBA)

thomaskh522

我正在尝试使用在Word中生成报告的宏(此宏不是我写的,编写它的人在这里也无法使用)。无论如何,它可以在我的同事PC上正常运行,但不能在我的PC上运行(如果重要的话,我有Surface Pro 3)。

当我运行宏时,它失败了: Set VAVdoc = WordApp.Documents.Add

当它失败时,我会收到以下错误:

运行时错误'91':未设置对象变量或With块变量。

我不知道为什么它不能在我的设置上运行,但是会在我的同事上运行。有任何想法吗?

任何帮助,不胜感激。更新:尝试后:

设置o = CreateObject(“ Word应用程序”)

再次没有o.quit我得到了错误

ActiveX组件无法创建对象

Dim i As Integer
Dim WordApp As Word.Application
Dim HVACdoc As Word.Document, VAVdoc As Word.Document, CDWdoc As Word.Document
Dim FullName As String, ShortName As String, TrendMonth As String, TrendYear As String, StartTrend As String, EndTrend As String
Dim ChartName As String, Directory As String, FolderName As String
Dim VAVName As String, VAVLocation As String, HVACName As String, HVACLocation As String, CDWName As String, CDWLocation As String

Call WorksheetCall("AHU-1")

FullName = "Mossman Building"
ShortName = "Mossman"
TrendMonth = MonthName(Month(Cells(4, 3)))
TrendYear = Year(Cells(4, 3))
StartTrend = Format(Cells(4, 3), "dddd, mmmm dd, yyyy")
EndTrend = Format(Cells(4, 3) + 6, "dddd, mmmm dd, yyyy")

Directory = "P:\M&V\- Projects\UNC-G\UNCG Year 7 Report"
FolderName = MonthName(Month(Cells(4, 3)), True) & " " & TrendYear
VAVName = FolderName & " - " & ShortName & " C.2.3.docx"
VAVLocation = Directory & FolderName & "\" & VAVName
HVACName = FolderName & " - " & ShortName & " C.2.4.docx"
HVACLocation = Directory & FolderName & "\" & HVACName
CDWName = FolderName & " - " & ShortName & " C.2.5.docx"
CDWLocation = Directory & FolderName & "\" & CDWName

On Error Resume Next
Set WordApp = GetObject(, "Word.Application")
If Err.number <> 0 Then
    Set WordApp = CreateObject("Word.Application")
End If
On Error GoTo 0

Call DefineDescriptions(TrendMonth, TrendYear, StartTrend, EndTrend)

'Report C.2.3 - VAV Conversion

If Dir(VAVLocation) = "" Then
    Set VAVdoc = WordApp.Documents.Add
    VAVdoc.SaveAs (VAVLocation)
End If
阿克塞尔·里希特(Axel Richter)

这不是解决方案,而是调试提示。

首先,在任务管理器中关闭所有正在运行的Word应用程序。

在中,Tools - References取消选择对的所有引用Microsoft Word ??? Object Library

现在尝试下面的宏。通过逐步执行F8但最后还要通过.Close.Quit因为如果您不这样做,系统中就会收集未使用的Word进程。

Sub testWordAppLateBinding()

 Dim oWordApp As Object
 Dim oWordDoc As Object

 Set oWordApp = CreateObject("Word.Application")
 oWordApp.Visible = True
 Set oWordDoc = oWordApp.Documents.Add



 oWordDoc.Close
 oWordApp.Quit

End Sub

这样行吗?是否有用新文档打开的Word?如果是这样,则后期绑定有效。如果不是,会发生哪些错误?

现在,Tools - References选择对它的引用Microsoft Word 14.0 Object Library并尝试以下宏:

Sub testWordAppEarlyBinding()

 Dim oWordApp As Word.Application
 Dim oWordDoc As Word.Document

 Set oWordApp = CreateObject("Word.Application")
 oWordApp.Visible = True
 Set oWordDoc = oWordApp.Documents.Add



 oWordDoc.Close
 oWordApp.Quit

End Sub

这也可以吗?是否有用新文档打开的Word?如果是这样,那么早期绑定也可以。如果是这样,则错误在其他地方。如果没有,但是后期绑定有效,那么您必须将代码更改为后期绑定。

如果没有任何效果,确定可以完全手动启动Word应用程序吗?Word是否启动时没有对话框?还是显示了哪些对话框?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

带有 VBA 的 MS Access 按钮不会打开报告,它会打印

来自分类Dev

双击.doc会打开Word,但不会打开文档

来自分类Dev

VBA MS Word 表格创建

来自分类Dev

Word 2010中的VBA不会迭代所有打开的文档

来自分类Dev

Word VBA不会关闭Excel应用程序

来自分类Dev

从Word VBA编辑打开或关闭的工作簿

来自分类Dev

从 VBA Excel 打开和关闭 Word 文档

来自分类Dev

VBA MS Word内容控制混乱的顺序

来自分类Dev

MS Word VBA:获取文档的附件模板

来自分类Dev

画布的 MS-Word VBA 拟合方法

来自分类Dev

MS Access 2010 VBA:自定义LostFocus子程序上的神秘编译错误

来自分类Dev

MS Access 2013:通过VBA使用MS Word的语法检查

来自分类Dev

如何在MS Word 2013中打开VBA编辑器?

来自分类Dev

VBA函数根据单元格值打开word文档

来自分类Dev

如何使用MS Word 2007 VBA检查窗口版本

来自分类Dev

如何在MS Word VBA中处理多字节符号

来自分类Dev

VBA MS-Word旧式表单字段计算

来自分类Dev

通过VBA访问MS Word中的嵌套表

来自分类Dev

vba ms-word 查找文本并获取相邻数字

来自分类Dev

如何在VBA MS Word中实现iferror函数

来自分类Dev

我在 MS Word 2016 中的 VBA for 循环不起作用

来自分类Dev

MS Word vba 重新排列页面顺序

来自分类Dev

将数组传递给子程序 VBA

来自分类Dev

vba word - 在系统上找到应用程序并启动它

来自分类Dev

MS Word VBA将Word文档的嵌套列表转换为HTML嵌套列表

来自分类Dev

原子不会打开

来自分类Dev

VBA仅允许子程序在另一个子程序运行之后运行

来自分类Dev

访问 VBA 退出被调用的子程序并跳过子程序的其余部分

来自分类Dev

不会打开端口