Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 从其他Excel工作表禁用宏_Vba_Excel - Fatal编程技术网

Vba 从其他Excel工作表禁用宏

Vba 从其他Excel工作表禁用宏,vba,excel,Vba,Excel,我正在为一个项目在Excel中编写一些VBA宏。当您通过宏打开VBA宏时,是否有办法确保它们不会从其他Excel工作簿启动 例如,假设一个工作簿中有一个宏,用于打开其他Excel文件: Sheets("Sheet1").Select PathName = Range("D3").Value Filename = Range("D4").Value TabName = Range("D5").Value ControlFile = ActiveWorkbook.Name Workbook

我正在为一个项目在Excel中编写一些VBA宏。当您通过宏打开VBA宏时,是否有办法确保它们不会从其他Excel工作簿启动

例如,假设一个工作簿中有一个宏,用于打开其他Excel文件:

Sheets("Sheet1").Select 
PathName = Range("D3").Value 
Filename = Range("D4").Value 
TabName = Range("D5").Value 
ControlFile = ActiveWorkbook.Name 
Workbooks.Open Filename:=PathName &; Filename 
我通常会在子例程中包含一个
Application.EnableEvents=False
,以确保在打开其他工作簿时不会触发代码。这也是本报告提出的方法

但我想到了两个问题:

  • 这“安全”吗?即使我禁用了事件,用户是否还有其他方法可以编写自己的宏在我的活动应用程序上执行

  • 除了完全禁用事件之外,还有其他解决方法吗?这似乎有点限制,几乎是“把孩子和洗澡水一起扔出去”


  • 这似乎是在没有宏的情况下打开的文件,并且是只读的。 测试时,我甚至无法在VBA编辑器中看到打开文件的宏模块

    Application.AutomationSecurity = msoAutomationSecurityForceDisable
    Workbooks.Open Filename:=strFilepath & strFilename, ReadOnly:=True
    Application.AutomationSecurity = msoAutomationSecurityByUI
    

    使用SQL从工作表中获取数据