我想使用Excel中的宏从目录导入最后修改的txt文件。 我有一个文件夹,每天增加一个新的txt文件。 目标是导入在direrctory中添加的最后一个txt文件。
我已经创建了一个Excel文件,其中一个按钮受宏影响。
这是宏的代码:
Sub Import()
'
' Import Macro
' Macro saved on 02/03/2011 by StYellowknife3000
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Folder\File_01.txt", Destination:= _
Range("A1"))
.Name = "File_01"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub
谢谢
答案 0 :(得分:1)
一种方法是使用Scripting.FileSystemObject并遍历所有文件检查其日期。这是我用来在文件夹中打开最新CSV的一些代码
For Each fsoFile In fsoFldr.Files
If fsoFile.DateCreated > dtNew And fsoFile.Type = sCSVTYPE Then
sNew = fsoFile.Path
dtNew = fsoFile.DateCreated
End If
Next fsoFile
Workbooks.Open sNew
您可以在此处查看需要设置的所有代码和参考资料
http://www.dailydoseofexcel.com/archives/2009/05/01/opening-the-newest-file-in-a-folder-with-vba/
答案 1 :(得分:0)
我从另一个线程中找到了这个例子但是只有在文件名总是相同的情况下它才有用。 这个用lastmodified检查文件,但它不能正常工作。
代码:
Sub test()
MsgBox FileLastModified("C:\My Documents\abook.xls")
End Sub
Function FileLastModified(strFullFileName As String)
Dim fs As Object, f As Object, s As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile(strFullFileName)
s = UCase(strFullFileName) & vbCrLf
s = s & "Last Modified: " & f.DateLastModified
FileLastModified = s
Set fs = Nothing: Set f = Nothing
End Function