我有一個應用程序,它以txt格式導出每日報告。 我有一個宏從這些報告中提取某些數據行並將它們放入一個輸出xls文件中。我的宏的輸入目錄是一個單獨的文件夾,我手動移動今天的報告。Excel宏只讀取今日創建的文件的輸入
我想讓我的宏能夠從默認報告文件夾中讀取,並只讀取以今天的日期創建的文件。
報告文件的命名約定如下: 1101_16_16_AppServiceUser_YYYYMMDDhhmmssXXX.txt 不知道文件名的最後3位數字代表什麼,但他們始終號碼。
幫助?
WOW很快!謝謝...第一次使用stackoverflow。 我想我應該包括提取數據並轉儲它出類拔萃的代碼......這就是:
Sub PullLinesFromEPremisReport()
Dim FileName, PathN, InputLn As String
Dim SearchFor1, SearchFor2, OutpFile As String
Dim StringLen1, StringLen2 As Integer
Dim colFiles As New Collection
Dim bridgekey As String
PathO = "C:\Documents and Settings\GROMERO\Desktop\CM reconciliation\output\"
PathN = "C:\Documents and Settings\GROMERO\Desktop\CM reconciliation\input\"
FileName = Dir(PathN)
While FileName <> ""
colFiles.Add (FileName)
FileName = Dir
Wend
SearchFor1 = "BRIDGE KEY"
StringLen1 = Len(SearchFor1)
OutpFile = "RESULTS.xls"
Open PathO & OutpFile For Output As #2
For Each Item In colFiles
Open PathN & Item For Input As #1
Do Until EOF(1) = True
Line Input #1, InputLn
If (Left(LTrim$(InputLn), StringLen1) = SearchFor1) Then
bridgekey = InputLn
End If
Loop
Close #1
Next Item
Close #2
End Sub
OP,我想如果你添加一個「vba」標籤的問題,代碼突出顯示將工作可能?只是猜測 – 2012-08-17 18:38:28
這是一種不可靠的方法。去與丹尼爾建議的第二個選項。原因是文件格式爲'YYYY MM DD hh mm ss XXX'例如:如果我正在查找8月18日(2012年08月18日)的文件,那麼上述文件將失敗'2012 08 19 20 12 08 184' – 2012-08-17 18:42:23
如果您的文件命名是另一個應用程序的自動輸出,你可以依賴「AppServiceUser_YYYYMMDD ....」,然後你可以添加到'If',如:「AppServiceUser_」&Format(Now,「YYYYMMDD」))。OP表示文件格式在文件名中間包含「YYYYMMDD」。你是對的,但如果字符串出現在其他地方,會產生誤報。 Ack,不知道如何做一個文字「在評論中更新答案 – 2012-08-17 18:48:28