VBA使用Outlook打开Excel不能打开

嗨,感谢您的帮助。

我在Outlook 2010&2007中有以下代码:

Sub Openexcel() Dim xlApp As Object Dim sourceWB As Workbook Dim sourceSH As Worksheet Dim strFile As String Set xlApp = CreateObject("Excel.Application") With xlApp .Visible = True .EnableEvents = False End With strFile = "E:\All documents\susan\work\Excel projects\saving files to directory Clean.xls" Set sourceWB = Workbooks.Open(strFile, , False, , , , , , , True) Set sourceSH = sourceWB.Worksheets("Sheet2") sourceWB.Activate End Sub 

这个代码在我打开Outlook后第一次使用它,但如果我closures了Excel文件,我不能再使用它。 我需要重新打开这本工作书约3次

问题在
outlookVBA开放Excel似乎有同样的问题,但我不明白的答案。

“我弄明白了,我打开了一个不同的工作簿,然后在我打开第二个工作簿之前closures它,为了解决这个问题,为了解决这个问题,我打开了excel应用程序并将工作簿对象重置为新的工作簿我想了”

如果有人能帮助那些很好的附加代码。

Excel文件打开后,在Excel交互中发现的很好的代码不起作用 。

为什么上周我找不到这个知道的人。

 Sub Openexcel() ' change Dim xlApp As Excel.Application Dim sourceWB As Excel.Workbook Dim sourceSH As Excel.Worksheet 'change Set xlApp = New Excel.Application With xlApp .Visible = True .EnableEvents = False '.UserControl = False '.DisplayAlerts = False '.AskToUpdateLinks = False End With strFile = "E:\All documents\susan\work\Excel projects\saving files to directory Clean.xls" 'change Set sourceWB = xlApp.Workbooks.Open(strFile, , False, , , , , , , True) Set sourceSH = sourceWB.Worksheets("Sheet2") sourceWB.Activate End Sub 

谢谢你们所有的想法。

您需要在全局范围声明Excel应用程序并使用它打开另一个工作簿。 不要创build一个新的Excel实例来打开新文件。 您可能会发现如何从Visual Basic文章自动化Microsoft Excel文章有帮助。

例如,在事件处理程序之外声明Application对象:

 Dim oXL As Excel.Application Private Sub Command1_Click() Dim oWB As Excel.Workbook 

因此,您将能够重新使用它来closures和打开新的工作簿。