我想将一个表(该表称为" Consultations")导出到Excel,然后打开该文件。我是从带有按钮的表单中做到这一点的。此时,我正确导出文件,但Excel不会保持打开状态。我尝试使用xlApp.Visible = True
,但只是在导出文件时打开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
答案 0 :(得分:4)
创建电子表格,然后使用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()
表达式而不是三个表达式将格式化日期添加到文件名中。
答案 1 :(得分: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