如何通过excel VBA只读取电子表格中的嵌入对象

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

我在工作簿中的隐藏工作表中嵌入了很少的对象,它们运行VBA代码。这些对象(word,excel,pdf等)只是模板,我需要打开这些对象的副本,或者在单击命令按钮时将其打开为只读,这样模板内容保持不变。

我在互联网上搜索但没有找到一种方法将这些嵌入对象打开为只读。我正在运行此代码,但保存操作不成功。

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
excel excel-vba
1个回答
0
投票

您需要保护文档以防止在将其嵌入Excel之前进行更改。


以Word文档为例:

您可以使用Word的保护功能来保护它,并可以选择为不同的用户提供不同的权限。

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

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

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