从Outlook打开工作簿而不使用只读模式

时间:2017-11-24 14:23:27

标签: excel vba outlook readonly

我正在尝试打开Excel工作簿并从Outlook运行宏。不幸的是,每当我打开工作簿时,它似乎默认为只读模式,这意味着我无法运行我想要的宏。

这是我的代码:

Sub runPat(client As String)

'Runs a PAT using tool with client as input

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application

Dim sourceWB As Workbook
Dim usr As Worksheet
Dim strFile As String

Set xlApp = CreateObject("Excel.Application")

With xlApp
    .Visible = True
    .EnableEvents = False
End With

'Source file, will need to be changed if PAT is ever moved
strFile = "C:\Users\albio\Dropbox\Document Creation Program\Portfolio Analysis Tool\Portfolio Analysis tool v1.0.xlsm"  'PAT File path

'Open workbook
Set sourceWB = Workbooks.Open(strFile, , False)

'Run this PAT
sourceWB.Application.Run "buttons.launchButton"

End Sub

我尝试了各种解决方案,例如在打开文件路径之前设置IgnoreReadOnlyRecommended = True并使用setAttr到vbNormal。出于某种原因,它总是以只读模式打开,我看不出原因?

[编辑]工作簿通常在没有只读模式的情况下打开。只有在我的Outlook VbaProject中打开工作簿时才会启用只读。

1 个答案:

答案 0 :(得分:0)

如果直接从excel打开工作簿,它将以只读模式打开,因为它不是受信任的文档。通常,如果单击启用宏,则下次将其添加为受信任文档。如果发生这种情况可能是因为可信文档已被禁用。

您可以通过导航到excel中的以下位置

来启用受信任的文档
  

文件>选项>信托中心>信任中心设置>可信   文件

在这里,您需要取消选中“禁用受信任的文档”,甚至可以选中“允许网络上的文档受信任”

如果您尝试通过VBA代码打开excel文件,则需要在打开工作簿之前更改自动化安全性。例如

application.AutomationSecurity = msoAutomationSecurityLow
Workbooks.Open abc.xlsm
Application.AutomationSecurity = msoAutomationSecurityByUI 'Changes it back to the default value