如何通过Excel VBA以只读方式打开电子表格中的嵌入式对象

时间:2018-09-04 09:17:31

标签: excel excel-vba

在运行VBA代码的工作簿的隐藏工作表中嵌入了一些对象。这些对象(word,excel,pdf等)只是模板,我需要打开它们的副本或以只读方式打开它们,只需单击命令按钮即可,因此模板内容保持不变。

我已经在Internet上进行了搜索,但没有找到打开这些嵌入式对象为只读方式的方法。我正在运行此代码,但是保存为操作失败。

Private Sub M114_Click()
Dim WDObj As Object
Dim WDApp As Object

Set WDApp = GetObject(, "Word.Application")
Set WDObj = Sheets("Tools").OLEObjects("MO")

WDObj.Activate

WDApp.ActiveDocument.SaveAs ("MO_copy.doc")
Set WDObj = Nothing
Set WDApp = Nothing
End Sub

1 个答案:

答案 0 :(得分:0)

您需要保护文档,以防止将其嵌入Excel之前


以Word文档为例:

您可以使用Word的保护功能来保护它,并可以选择将不同的权限授予不同的用户。

  1. 转到功能区上的Review标签。
  2. 保护组中,单击 Restrict Editing
  3. 在屏幕侧面“限制编辑”选项的第2部分中,选中“ 仅允许这种类型的编辑 ”复选框,并确保下拉菜单设置为**No Changes (Read Only)**
  4. 根据需要设置其他保护选项。
  5. 在第3部分中,单击是,开始执行
  6. 保存并关闭文档,然后将其嵌入Excel文件中。

或者,如果将嵌入式对象链接到源文件,则可以在Windows文件属性中将文件设置为“只读”。如果对象未链接到文件,则此方法将无效。