我在 MS Access 中有以下 VBA 腳本來檢查目錄并在它不存在時創建它:
Public Function MakeReportDirct()
Dim fDate As String
Dim sFolderPath As String
Dim oFSO As Object
fDate = Format(Now(), "YYYY-MM")
sFolderPath = "\\satco-file01\COMPANYSHAREDFOLDERS\Reporting\Nuvo\Daily Reports\" & fDate
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FolderExists(sFolderPath) Then
End
End If
MkDir sFolderPath
End Function
當我在 VBA 視窗中單獨運行代碼時,它運行良好。但是,當我嘗試從宏運行代碼或嘗試從另一個 VBA 腳本呼叫時:
Public Function ChartwellVendor()
Call MakeReportDirct
Call ChartwellVendorExport
Call ChartwellVendorEmail
End Function
它給出了“宏單步”錯誤:2001
我已將我能想到的每個位置(資料庫位置、匯出位置、將創建目錄的位置)啟用為“受信任位置”。
任何幫助將不勝感激!
uj5u.com熱心網友回復:
End 陳述句 “立即終止執行”。
當您MakeReportDirct單獨運行時,它會完成您想要的:MkDir當檔案夾已經存在時不會執行。
但是當您從內部運行它時ChartwellVendor,您希望其他程式在之后運行MakeReportDirct。但是,該End陳述句會終止所有進一步的處理,因此其他程序不會運行。
您可以通過替換為來避免該End問題Exit Function。然后MakeReportDirct可以終止,但仍然允許處理繼續下一行ChartwellVendor
另一種方法是翻轉If塊條件的邏輯。如果該檔案夾不存在,請MkDir在該代碼塊內運行。
If Not oFSO.FolderExists(sFolderPath) Then
MkDir sFolderPath
End If
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/429054.html
下一篇:動態排序列MSAccess子表單
