excel - 应用程序:有没有办法在没有提示的情况下保存和关闭外部文件?
问题描述
我编写了一个宏来打开资源池,提取资源数据并导入到 Excel 工作簿,然后打开带有实际员工列表的第二个工作簿,比较和混合两个列表,并将完整的更新列表注入 MSP 资源池。
一切正常,但在过程结束时我得到了烦人的 MSP 另存为提示窗口。
我尝试了所有ProjApp.DisplayAlerts = False
, ProjApp.FileCloseEx
, ProjApp.FileCloseEx pjSave
, ProjApp.FileExit
,ProjApp.FileExit pjSave
或者ProjApp.ActiveProject.SavesAs ProjApp.ActiveProject.Name
但我总是有这个我想摆脱的提示窗口。有没有办法做到这一点,就像 Excel 工作簿一样?
编辑:似乎问题来自 FileOpenEx 方法。我设置ProjApp.FileOpenEx(file, False, , , , , , , , , , 2)
了,但是当涉及到 FileCloseEx 时,我收到一条消息,指出文件是只读而不是读/写,因为它应该是
Dim ProjApp As MSProject.Application
Dim Proj As MSProject.Project
Set ProjApp = GetX("MSProject.Application")
ProjApp.Visible = True
ProjApp.DisplayAlerts = False
If ProjApp.FileOpenEx(files.MSPResourcePool, False, , , , , , , , , , 2) Then
Set Proj = ProjApp.ActiveProject
Else
MsgBox "Fichier non trouvé : " & vbCrLf & files.MSPRessPool
Exit Sub
End If
ProjApp.ViewApplyEx Name:="Resource Sheet", ApplyTo:=0
...
ProjApp.FileCloseEx
Set Proj = Nothing
Set ProjApp = Nothing
ProjApp.DisplayAlerts = True
解决方案
打开资源池和总体规划似乎可以解决问题。也必须将关闭方法从更改ProjApp.FileCloseEx
为ProjApp.Quit pjSave
Dim ProjApp As MSProject.Application
Dim Proj As MSProject.Project
Set ProjApp = GetX("MSProject.Application")
ProjApp.Visible = True
ProjApp.DisplayAlerts = False
If ProjApp.FileOpenEx(files.MSPRessPool, False, , , , , , , , , , 3) Then
Set Proj = ProjApp.ActiveProject
Else
MsgBox "Fichier non trouvé : " & vbCrLf & files.MSPRessPool
Exit Sub
End If
If ProjApp.FileOpenEx(files.MasterPlanning, False, , , , , , , , , , 3) Then
Set Proj = ProjApp.ActiveProject
Else
MsgBox "Fichier non trouvé : " & vbCrLf & files.MSPRessPool
Exit Sub
End If
ProjApp.ViewApplyEx Name:="Resource Sheet", ApplyTo:=0
...
ProjApp.Quit pjSave
Set Proj = Nothing
Set ProjApp = Nothing
ProjApp.DisplayAlerts = True
现在我更新了总体规划中的资源,它更新了资源池中的资源。
我想使用的另一个选项是,ProjApp.ResourceSharingPoolUpdate
但是 1/ 当资源池以读/写权限打开时它不起作用,并且 2/ 它说资源池是只读的,如果像这样打开并要求保存为复制。我想我还有一些工作要掌握这些奥秘:)
推荐阅读
- sql-server - 表关系 - 最佳实践
- python - 如何多次编辑附加到列表中的行?
- javascript - 由于 Promise 链接,Firebase Firestore 更新查询不会执行。我究竟做错了什么?
- linux - 面临 ORA-01033:由于数据文件问题,ORACLE 初始化或关闭正在进行中
- javascript - Meteor 应用程序部署后的代码覆盖率
- android - ContryCodePicker 在组件树中显示为问号
- android - 如何获取 Webview 访问的链接?
- amazon-web-services - AWS Cloudfront 自定义子域 TSL/SSL:“不安全/证书无效”
- python - python生成器中的一行代码
- javascript - 按下搜索图标后如何展开搜索栏