我有一個每24小時產生一個文件的數據記錄器。文件名遵循以下格式: 24hr_Export_YYYY_MM_DD_HH_MinMin_SS.csv 問題在於文件名的小時,分鍾,秒部分。 「秒(SS)」字段總是不同,因爲導出到同步到我的FTP所需的時間,但我只需要驗證文件名的年,月,日部分知道要導入到我的電子表格。有一個特殊字符可以替代文件名的最後部分嗎? 該代碼是下面:如何使用VBA引用文件名中具有通用部分的文件?
Path = "\\blah\blah\blah\"
Prefix = "24hr_Export_"
Suffix = "_00_00_14"
FName = Prefix & DayTime & Suffix & ".csv"
ImportCsvFile Path & FName, ActiveSheet.Cells(1, 1)
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
其中作爲在宏上述前面提到的白天被格式化,並在後綴「14」是任意的。
一旦你創建了文件名,你會做一個'Workbooks.Open'嗎? –
數據記錄器將其導出到特定位置時生成文件名。我將安排一項任務來打開特定工作簿,運行宏,每天保存並關閉工作簿。 – user2795886