2014-10-29 51 views
1

我想将一个表(该表称为“Consultations”)导出到Excel,然后打开文件。我正在用一个按钮做一个表单。此时,我已正确导出文件,但Excel未保持打开状态。我尝试使用xlApp.Visible = True,但它仅在导出文件时打开Excel,然后在完成时关闭Excel。将表导出到Excel和打开文件

我需要插入什么代码才能保持Excel(和导出的文件)打开?

Private Sub btnExportConsultations_Click() 

Dim curPath As String 
Dim xlApp As Object 

Set xlApp = CreateObject("Excel.Application") 
xlApp.Visible = True 
curPath = CurrentProject.Path & "\Consultations - " & Format(Date, "MM") & "-" & Format(Date, "dd") & "-" & Format(Date, "yyyy") & ".xlsx" 
DoCmd.TransferSpreadsheet acExport, 10, "Consultations", curPath, -1 

End Sub 

回答

3

创建电子表格,然后使用Application.FollowHyperlink在与该文件类型关联的应用程序---这应该是Excel中打开它。

Private Sub btnExportConsultations_Click() 
    Dim curPath As String 

    curPath = CurrentProject.Path & "\Consultations - " & _ 
     Format(Date, "mm-dd-yyyy") & ".xlsx" 
    DoCmd.TransferSpreadsheet acExport, 10, "Consultations", curPath, -1 
    Application.FollowHyperlink curPath 
End Sub 

注意我也改变了curPath =线。您可以使用一个Format()表达式而不是三个将您的格式化日期转换为文件名。

+0

很棒!感谢关于将'curPath ='行更改为一个表达式的提示。 – user646464 2014-10-30 13:17:15

0

在您使用Excel应用程序对象的Workbooks.Open方法创建的Excel对象中打开工作簿。另外,我会在使用Excel之前导出文件 - 不知道它是否有所作为,但我认为代码至少流动得更好。

Private Sub btnExportConsultations_Click() 

    Dim curPath As String 
    Dim xlApp As Object 

     curPath = CurrentProject.Path & "\Consultations - " & Format(Date,"mm-dd-yyyy") 
     DoCmd.TransferSpreadsheet acExport, 10, "Consultations", curPath, -1 

     Set xlApp = CreateObject("Excel.Application") 
     xlApp.Workbooks.Open(curPath) 
     xlApp.Visible = True 

End Sub