【发布时间】:2018-04-24 03:21:14
【问题描述】:
我正在尝试在 VBA 中编写一个序列,程序将从特定文件夹中提取最新的 CSV 文件,并在工作表的单元格 A1 中输入查询表。现在它只让我将似乎无法格式化的 .TXT 文件提取到正确的表格中。有任何想法吗?
谢谢! 子GetMostRecentFile()
Dim FileSys As FileSystemObject
Dim objFile As File
Dim myFolder
Dim strFile As String
Dim dteFile As Date
Dim Ws As Worksheet
'set path for files - change for your folder
Const myDir As String = "C:\Users\User\Desktop\Refresh Test"
'set up filesys objects
Set FileSys = New FileSystemObject
Set myFolder = FileSys.GetFolder(myDir)
'loop through each file and get date last modified. If largest date then
store Filename
dteFile = DateSerial(1900, 1, 1)
For Each objFile In myFolder.Files
If objFile.DateLastModified > dteFile Then
dteFile = objFile.DateLastModified
strFile = objFile.Name
End If
Next objFile
Set Ws = ActiveWorkbook.Sheets("Sheet1")
With Ws.QueryTables.Add(Connection:="Text;" & strFile,
Destination:=Ws.Range("A1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 437
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
Set FileSys = Nothing
Set myFolder = Nothing
End With
End Sub
【问题讨论】: