簡體   English   中英

使用VBA的Excel中的默認路徑

[英]Default path in Excel using VBA

目標是使日常工作自動化,以打開工作簿,導入.csv文件並執行一些格式化,保存和退出excel的操作,唯一的要求就是打開計算機。 我每天使用Windows任務計划程序打開啟用了宏的工作簿。 在此站點的幫助下,我在任務中添加了參數/ p“我的特定路徑”以設置希望訪問的導入路徑。 然后,使用Workbook_open函數執行導入,但是,突出顯示.refresh backgroundquery:= false行時,發生以下錯誤:

Run-time error '1004':
Excel cannot find the text file to refresh this external data range.
Check to make sure the text file has not been moved or renamed, then try
  the refresh again.

現在,如果選擇“結束”以停止調試器並僅自己運行宏,則一切正常。 如果重要的話,路徑在網絡上。 如果可以的話,我可以發布部分代碼,但這很長。 不用說我不是VBA專家,所以我將代碼拼湊在一起,但是除了.csv文件的初始導入之外,其他所有方法都有效。 在此先感謝您的任何建議。

相關代碼:

R = 1
FName = Dir(Path & DayTime & ".csv")

Do While FName <> ""
    ImportCsvFile FName, ActiveSheet.Cells(R, 1)
    R = ActiveSheet.UsedRange.Rows.count + 1
    DayTime = DayTime + 1
    FName = Dir(Path & DayTime & ".csv")
Loop

Sub ImportCsvFile(FileName As Variant, Position As Range)
With ActiveSheet.QueryTables.Add(Connection:= _
  "TEXT;" & FileName _
  , Destination:=Position)
  .Name = Replace(FileName, ".csv", "")
  .FieldNames = True
  .RowNumbers = False
  .FillAdjacentFormulas = False
  .RefreshOnFileOpen = False
  .BackgroundQuery = True
  .RefreshStyle = xlInsertDeleteCells
  .SavePassword = False
  .SaveData = True
  .AdjustColumnWidth = True
  .TextFilePromptOnRefresh = False
  .TextFilePlatform = xlMacintosh
  .TextFileStartRow = 1
  .TextFileParseType = xlDelimited
  .TextFileTextQualifier = xlTextQualifierDoubleQuote
  .TextFileConsecutiveDelimiter = False
  .TextFileTabDelimiter = True
  .TextFileSemicolonDelimiter = False
  .TextFileCommaDelimiter = False
  .TextFileSpaceDelimiter = False
  .TextFileOtherDelimiter = ","
  .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
  .Refresh BackgroundQuery:=False
End With
End Sub

FName = Dir(Path & DayTime & ".csv")僅返回文件名,如果文件不存在,則返回空白。

將路徑添加到參數,它應該可以正常工作。 我也更喜歡使用Call和()。

Call ImportCsvFile(Path & FName, ActiveSheet.Cells(R, 1))

顯然,在開始使用調試器后,當前目錄已更改。 它必須從沒有文件的文件夾更改為沒有文件的文件夾。 這就是第二次運行時它起作用的原因。 我不是那個原因。

同樣,如果在發生錯誤時您已經檢查了ImportCsvFileFileName變量,那么您將看到路徑丟失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM