退出在子子程序中打开的 Word.Application

2024-01-15

我们宣布Word.Application对象在Pro1下面的子函数。因为我们需要返回Word.Document对象,应保持打开状态。我怎样才能退出父子例程中的Word应用程序(test01)


我需要objWord声明于的对象Pro1函数将在没有提示的情况下安静地退出test01程序运行已结束。

我有以下两个过程

并执行以下操作:

Sub test01()
    WrdPDF objDoc:=Pro1 strPath:=ThisWorkbook.path & "\" & "rep.pdf"
End Sub

|

Function Pro1 As Word.Document

    'Declaration
    Dim objWord As Word.Application
    ' Here we declare a Word Application in the function and need 
    ' quit that in another procedure (The parent one which is test01). 
    Dim objDocTotal As Word.Document
    Dim objDoc As Word.Document

    'Initializing
    Worksheets("Salary").OLEObjects("PayCheck").Activate
    Set objWord = GetObject(, "Word.Application")
    objWord.Visible = False
    Set objDoc = objWord.ActiveDocument
    Set objDocTotal = objWord.Documents.Add

...

    Proc1 = objDocTotal
End Function

|

Sub WrdPDF(objDoc As Object, strPath As String, Optional Opn As Boolean) 'MS-Word PDF
    objDoc.ExportAsFixedFormat _
        outputfileName:=strPath _
        , exportformat:=wdExportFormatPDF _
        , openafterexport:=Opn _
        , optimizefor:=wdExportOptimizeForPrint _
        , Range:=wdExportAllDocument _
        , Item:=wdExportDocumentContent _
        , includedocprops:=False _
        , keepirm:=True _
        , createbookmarks:=wdExportCreateNoBookmarks _
        , docstructuretags:=True _
        , bitmapmissingfonts:=True _
        , useiso19005_1:=False
End Sub

Regards.


您不能退出该子例程并保持文档打开。一旦该子例程结束,变量 objWord 就不再可用 - 您已经“孤立”了 Word 的实例。

我立即看到两种可能性,这两种可能性都涉及传递对象并从对象中取回对象Proc1这样您就可以访问应用程序对象:

1)您可以在test_01中声明Word.Application对象并将其传递给Proc1

Sub test01()
    Dim objWord as Word.Application
    WrdPDF objDoc:=Proc1(objWord), strPath:=ThisWorkbook.path & "\" & "rep.pdf"
    objWord.Quit 0
End Sub

Function Proc1(ref objWord as Word.Application) As Word.Document
    Dim objDocTotal As Word.Document
    Dim objDoc As Word.Document
    'And so on, as you currently have, without declaring objWord here

2) 您可以通过 Proc1 返回的文档对象来访问应用程序对象:

Sub test01()
    Dim objDoc as Word.Document
    Dim objWord as Word.Application
    Dim strPath as String

    strPath = ThisWorkbook.path & "\" & "rep.pdf"
    Set objDoc = Proc1
    WrdPDF objDoc, strPath
    Set objWord = objDoc.Application
    objWord.Quit 0 'do not prompt to save changes
End Sub

我可能倾向于使用(2),但是当我测试它们时,两者都有效。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

退出在子子程序中打开的 Word.Application 的相关文章

  • SQL Excel VBA 运行时错误 3709 无效连接

    这是我的第一个问题 欢迎提出建设性的批评 我正在尝试从 Excel VBA 查询 Access 数据库并将返回信息放入 Excel 范围中 我收到此错误 错误消息 运行时错误 3709 连接无法用于 执行此操作 在此情况下它已关闭或无效 语
  • 在 Excel 中使用 VBA 设置图像透明度

    有没有办法使用 VBA 脚本对图像应用一些透明度 我录制了一个 宏 但似乎没有录制艺术效果 我已经找到了如何制作形状 但没有找到图像 这需要几个步骤 将自选图形 如矩形 放置在工作表上 使用以下方法将您的实际图片嵌入矩形中 ShapeRan
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 如何将 .xlsx 文件上传到 jenkins 作业

    如何将 xlsx 文件作为构建参数上传到 jenkins 作业 我尝试使用文件参数 但我发现该文件正在丢失其扩展名或原始格式 有什么方法可以从 jenkins UI 将 excel 文件上传到 jenkins 作业吗 In the file
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代
  • 数据透视表错误 |无效的调用或过程

    我需要一些帮助来解决这个问题 我正在尝试创建一个数据透视表 从第一季度开始 在同一张表中包含一系列数据 第一个 if 语句在那里是因为最后一列并不总是包含标题 所以我将其包含在那里 我希望范围是动态的 因为所制作的表格的大小将根据工作表中数
  • 将 HTML 转换为 Excel 的最佳方法是什么

    我有一个 HTML 页面 其中包含 Flash 图表 FusionCharts 和 HTML 表格 我需要将这整个事情转换成Excel HTML 表格应显示在 Excel 工作表的单元格中 Flash 图表可以显示为图像 我们可以使用任何开
  • 从Excel工作表中读取汉字? (总是返回“???”)

    如何从Excel单元格中读取汉字并将其写入文件 当我取值时 Worksheets ActiveCell Worksheet Name Cells 3 columnNumbers 0 value 它总是返回 Dim fileStream Fi
  • Excel 2007 从 C# get_Value 始终返回 -2146826265

    我有一个引用 Microsoft Excel 12 0 对象库的小型 C 应用程序 除此之外 它还从 Excel 单元格读取值 它从一些较旧的 Excel xls 文件和一些 2007 文件 xlsx 中读取此值 所有 xls 文件的值都会
  • 使用图表时避免使用“激活”和“选择”(Excel)

    我知道使用Activate and Select在 Excel 中 VBA 不是最佳实践 我看过有关如何在处理范围时避免它们的参考资料 例如 LINK https stackoverflow com questions 10714251 e
  • Pandas.read_excel 有时会错误地将布尔值读取为 1/0

    我需要将一个非常大的 Excel 文件读入 DataFrame 中 该文件包含字符串 整数 浮点和布尔数据 以及丢失的数据和完全空的行 还值得注意的是 某些单元格值源自单元格公式和 或 VBA 尽管理论上这不会影响任何内容 正如标题所示 p
  • 生成Excel文件错误

    我在经典 ASP 中使用以下代码生成 Excel 文件 代码很简单并且有效 我在 Windows Vista x86 上的 IIS 7 0 下运行代码 两个问题 有一个奇怪的警告框 这是屏幕快照 http i27 tinypic com 2
  • 调试VBA、定位问题及排查方法[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 有哪些方法调试VBA代码 具体来说 单步执行代码 断点和停止命令 TheDebug command 当地人和观察窗 调用栈 调试 VB
  • 使用 LAMBDA 在 Excel 中生成所有排列

    这是一个经常被问到和回答的问题 如何在 Excel 中生成所有排列 2011 https stackoverflow com questions 5724373 permutations in excel 2016 https stacko
  • 在 Python 中从 Excel 复制 YEARFRAC() 函数

    因此 我使用 python 来自动执行一些必须在 Excel 中执行的重复任务 我需要做的计算之一需要使用yearfrac 这在Python中被复制了吗 I found this https lists oasis open org arc
  • VB6/VBA 中对象清除/数组释放真的有必要吗(优点/缺点?)[重复]

    这个问题在这里已经有答案了 我从使用静态代码分析 特别是 Aivosto 的项目分析器 中学到了很多关于 VB 的知识 它检查的一件事是您是否清除了所有对象和数组 我以前只是盲目地这样做 因为PA这么说 但现在我对 VB 释放资源的方式有了
  • 将数据从 R 导出到 Excel

    我试图将从 R 获得的一些结果导出到 Excel 中 但未成功 我尝试过以下代码 write table ALBERTA1 D ALBERTA1 txt sep t write csv ALBERTA1 ALBERTA1 csv your
  • 有没有一种方法可以将这些列转换为数据格式?

    有没有办法将这些列转换为数据格式 gg mm aaaa 时 分 秒 日期 20220601 gt gt gt gt 2022 06 01 小时 3047 gt gt gt gt gt 00 30 47 时 分 秒 我对 B 列有严重问题 我
  • 行编号选择自动填充直到最后[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有一个包含数千行的表 我想通过在第一行旁边添加 1 2 3 来对行进行编号 然后选择这些行并拖动到最后以使用递增的数字进行填充 如何自动
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此

随机推荐

  • 如何在不复制 Xcode 4 项目的情况下从付费版本构建免费版本?

    我听说有传言说 通过使用目标和条件编译指令 可以在不复制 Xcode 项目的情况下构建应用程序的不同变体 例如 IF FREE VERSION self loadGreatFeature ELSE self loadBoringFeatur
  • 嵌入层 Keras 的可变长度输入

    我有一个可变大小的文本语料库 我正在尝试使用 keras 中的嵌入层将文本输入 LSTM 模型 我的代码看起来像这样 import numpy as np from keras layers import Embedding Input L
  • 在 Spark 中,如果数据帧中没有行,如何在文件中写入标头?

    如果数据框中没有行 我想在文件中写入标题 当前当我将空数据框写入文件时 会创建文件 但其中没有标题 我正在使用这些设置和命令编写数据帧 Dataframe repartition 1 write format com databricks
  • 使用jQuery突出显示元素,无法获取内部元素

    我正在尝试在我的 Web 应用程序中创建某种突出显示 选择工具 使用 jQuery 该工具可监视您将鼠标悬停在 iFrame 内的元素 选择悬停的元素 并使用该元素的样式在叠加时创建div 想想网络检查器中的元素选择工具 这是一个选择所有可
  • 使用 org.apache.commons.exec.DefaultExecutor 执行 shell 命令

    我想在java代码中执行这样的命令 gzip c tmp specificPreffix 2013 11 06 txt gt tmp specificPreffix 2013 11 06 txt gz 我的系统是RHEL5 我已经授予了文件
  • drupal sql 多个表的条件子句?

    我对常见问题解答搜索模块进行了以下查询 修改后可在 Drupal 7 中使用 它在两个表中搜索 1 标题2 正文但无法再包含一个 term strip tags drupal substr POST keyword 0 100 query
  • 不使用 zipWith 的斐波那契数

    我一直在尝试实现从 0 到 n 的斐波那契数列列表 而不使用惰性zipwith https hackage haskell org package base 4 14 1 0 docs Prelude html v zipWith方法 到目
  • 如何从 VIM 在新选项卡中打开终端?

    当我使用 4 个文件时 所有文件都在选项卡 VIM 中打开 我想保存更改并编译它 而不必关闭选项卡 即我想在新选项卡中与现有的 4 个选项卡一起打开一个终端 我应该如何在 VIM 中执行此操作 tab ter 打开一个终端在新标签中而不是在
  • 如何在 linq 中对子列表求和?

    我想对列表的子列表上的属性求和 示例 I have public class List1 public List
  • 修改列表删除元素而不造成混乱

    我现在正在尝试解决一个听起来像这样的任务 编写一个函数 modi la lb 它接受输入 2 列表 la 和 lb 其中的元素数量相同 该功能应该modify列出 la 和 lb 比较两个列表中具有相同索引的元素并删除较大的一个 如果元素相
  • 为什么 FLAC Streaming over HTTP 采用 Ogg 封装而不是原生封装?

    当前所有 FLAC 流媒体实现 例如 Edcast 和 Icecast 似乎都在流媒体时使用 Ogg 作为 FLAC 的容器 这是什么原因呢 有什么缺点not使用 Ogg 并改为流式传输 本机 FLAC 流 我已经做了一些通过 HTTP 传
  • 使用 EWS 的 PR_SEARCH_KEY

    我需要提取PR SEARCH KEY对于某些邮件使用EWS 我之前是使用 Outlook API 完成的 但我想在 EWS 中重新编写完整的代码 因为它非常强大 旧代码 private String GetLnksForMailBoxMai
  • 使用 C# 将 excel 转换为 JSON,并将 excel 中的第一行作为键

    我正在寻找从中读取数据excel 2010通过指定工作表名称 然后我想将数据转换为JSON格式 假设我有一个这样的 Excel 工作表 Name Age Country Waugh Timothy 10 UK Freeman Neil 20
  • JavaFX 3-D 条形图与 Java 8

    是否有使用现代 3 D API 的最新 Java 8 的 3 D 条形图示例 我想使用 Java 8 中的 3 D API JavaFX 的早期版本中有一个 3d Bar Chart 演示 但已被删除 您可以自己创建条形图 只需创建一个网格
  • 在 Silverlight 中迭代枚举?

    在 Net 中 可以使用以下方式迭代枚举 System Enum GetNames typeof MyEnum or System Enum GetValues typeof MyEnum 然而 在 Silverlight 3 中 未定义
  • Mobaxterm:如何防止 ssh 会话退出?

    我该如何阻止这个 Session stopped Press
  • SwiftUI 拖放文件

    我正在尝试向我的 SwiftUI Mac 应用程序添加 拖放 手势 功能 我想将文件从我的系统 桌面拖放到我的应用程序中 我发现在常规 Swift 中这是可能的 我现在正在尝试在 SwiftUI 中执行此操作 我找到一个onDrop Swi
  • UITableView didSelectRowAt 不称为 iOS 10,但适用于 9.3.5

    关于这个问题有很多问题 但到目前为止我找到的答案并不适用 在这种情况下 该表在 iOS 9 3 5 中正常工作 但不适用于 iOS 10 或 10 3 1 我已经排除了 没有正确设置委托 代表执行 3 个功能 didSelectRowAt
  • 我应该为所有内容编写单元测试吗?

    我想知道我是否应该为所有内容编写单元测试 有一些类很难编写单元测试 例如 我正在编写一些处理音频的程序 用于从麦克风捕获音频的类和用于向扬声器播放音频的类 我如何为这些类编写单元测试 我无法获得这些类的输出和输入 因此几乎不可能测试它们 我
  • 退出在子子程序中打开的 Word.Application

    我们宣布Word Application对象在Pro1下面的子函数 因为我们需要返回Word Document对象 应保持打开状态 我怎样才能退出父子例程中的Word应用程序 test01 我需要objWord声明于的对象Pro1函数将在没