- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的问题,但我搜索过这个问题但找不到任何有用的主题..
我正在开发一个 VBScript,它打开一个 Excel 文件并修改其中的一些内容..所以我使用以下代码:
Set objXLApp = CreateObject("Excel.Application")
objXLApp.Visible = False
objXLApp.DisplayAlerts = False
Set objXLWb = objXLApp.Workbooks.Open(FilePath)
现在,我想要做的是使用一种锁定文件的方式打开 Excel 文件,并防止用户在脚本打开文件时打开它(直到它关闭)。
更新:
我认为问题在某种程度上与 Excel 实例有关,我尝试执行以下操作(当文件由脚本打开时):
现在这很奇怪,因为我使用的是 CreateObject("Excel.Application")
而不是 GetObject(, "Excel.Application")
最佳答案
在 Win 7 Excel 2010 上有一个注册表项 HKEY_CLASSES_ROOT\Excel.Sheet.8\shell\Open\command
,其默认值 “C:\Program Files\Microsoft Office\Office14\EXCEL.EXE"/dde
.命令行 /dde
开关启用 DDE(动态数据交换机制 - 一种古老的 Win 3.0 进程间通信方法),强制 Excel 在单个实例中启动。我尝试删除该开关并打开工作簿,但无济于事。顺便说一句,如果您没有编辑注册表的权限,或者您打算将脚本分发给没有权限的人,那么这不是一种方法。也尝试过this answer ,但它不适用于 Win 7 Office 2010。
我已经在启用 DDE 的情况下测试了 test.xlsm
文件。当用户打开文件时,实际上它只是在现有实例中重新打开以使其可见。如果脚本已进行任何更改,则 Excel 会发出警报:
无论如何,都为用户提供了写访问权限。之后,当脚本保存文件时,会出现另一个警报:
不久前,我创建了一个与 Excel 应用程序一起使用的脚本,并在 Win 7 Excel 2010 中遇到了与您所描述的相同的问题。我注意到,如果脚本中使用 CreateObject()
创建了多个 Excel 应用程序实例,则用户打开的 Excel 文件始终使用第一个创建的实例。我通过创建两个不可见的 Excel 应用程序实例(假设为虚拟实例和目标实例)解决了该问题。脚本的算法概述如下:
考虑下面的代码,它说明了实现您所需的可能方法:
' target file path
sPath = "C:\Users\DELL\Desktop\test.xlsm"
' create dummy instance
Set oExcelAppDummy = CreateObject("Excel.Application")
' create target instance
Set oExcelApp = CreateObject("Excel.Application")
' quit dummy instance
oExcelAppDummy.Quit
' open target workbook
With oExcelApp
.Visible = False
.DisplayAlerts = False
Set oWB = .Workbooks.Open(sPath)
End With
' make some changes and save
Set oWS = oWB.Sheets(1)
oWS.Cells(1, 1).Value = Now()
oWB.Save
' give additional time for test
MsgBox "Try to open test.xlsm, OK to end the script"
' close target workbook
oWB.Close
' quit target instance
oExcelApp.Quit
尝试打开文件,您将获得所需的输出:
脚本结束后的通知:
关于excel - 使用 VBScript 以独占模式打开 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019574/
当我在其中一个扬声器上打开独占模式音频流时,会发出奇怪的嗡嗡声。这种嗡嗡声不会在我的其他设备上的相同条件下发生,也不会在一般的独占推送模式或共享模式下发生。 问题似乎是 WASAPI 将周期设置为比我
我的一个类中有一个 double 值,并且有一个上限。 问题是当我尝试将此变量设置为大于其限制的值时。当发生这种情况时,我想将其设置为限制内最接近的值。 当我尝试时,尴尬的情况发生了 .getLimi
我有锁定每个函数(某个库的)的代码,我想对其进行优化。给定函数A和B ,我不介意A与任何其他同时运行 A ,或任何 B与任何其他同时运行 B ,但没有A可以在任何 B 时运行正在运行,反之亦然。线程计
当 XML 必须根据 http://www.w3.org/TR/xml-exc-c14n/ 规范化时,下面的 XML 片段应该相等吗?(注意,. 字符代表一个 ' ' 空格) . ..data .
我想限制对整个应用程序的访问 /*但对于某些 Servlet 则不然。它们应该是公开的。 有没有一种方法可以轻松做到这一点(我想象有一些排除或可能覆盖?)或者我是否必须将文件排列在子文件夹中并允许访问
在一个 spring-mvc 项目中,我对索引/主页的内容进行了测试: @RunWith(SpringRunner.class) @SpringBootTest @AutoConfigureMockM
完全依赖 ARKit 自动平面检测是我不想做的事情,因为它需要时间来检测表面,然后现实生活中的表面应该有足够的纹理,因此我需要考虑一些事情提供一个选项,如果我愿意,我应该能够通过点击按钮随意添加 an
我是一名优秀的程序员,十分优秀!