【发布时间】:2021-10-22 05:04:30
【问题描述】:
我有一个 VBA 代码,可以从 MS Access 或 Excel 应用程序运行。
在部分代码(如下所示)中,我必须默认找到应用程序文件目录,以保存 CSV 文件。
代码在 Excel 中运行没有任何错误,但在 MS Access 中,编译器抱怨
代码有什么问题?我还有其他方法可以找到适用于 MS Access 和 Excel 的文件路径吗??
If CSVpath = vbNullString Then
Select Case Application.Name '' system in which the code is running from
Case Is = "Microsoft Excel" '' it raises an error in MS Access
CSVpath = Application.ThisWorkbook.Path + "\DataSet_" + CStr(Format(Now(), "YYYY-MM-DD.HH.MM.SS")) + ".csv"
Case Is = "Microsoft Access"
CSVpath = Application.CurrentProject.Path + "\DataSet_" + CStr(Format(Now(), "YYYY-MM-DD.HH.MM.SS")) + ".csv"
Case Else
CSVpath = ""
End Select
End If
【问题讨论】:
-
代码对我来说很好用。你可以试试
Case "Microsoft Excel" .... -
在访问中
Application对象没有ThisWorkbook属性,因此您的代码无法在那里编译。你可以试试CallByName(Application, "ThisWorkbook").Path -
@TimWilliams - 我测试并不得不使用
CallByName(Application, "ThisWorkbook", VbGet).Path -
@braX - 谢谢,我想我可能错过了什么......