使用VB在excel中打开两个特定的.txt文档,将工作簿保存为某个名称,然后引用该工作簿

时间:2017-09-12 02:50:22

标签: excel excel-vba vba

我正在编写的程序需要帮助,该程序将在Excel中打开特定的.txt文档,然后将该工作簿保存为某个名称,该名称将在另一个Excel工作簿中引用。总体目标是使工作簿主单元格A3引用像文本文档中创建的Workbook Test1中的B5这样的单元格。到目前为止,我可以提取最新的文本文档,但我需要同一工作簿中的第三个最新文档。

例如:文件夹C:\Results包含文件:

Test1_Chr.txt
Test1_Ftr.txt
Test1_Hdr.txt
Test2_Chr.txt
Test2_Ftr.txt
Test2_Hdr.txt

我需要同时获取Test1 Chr和Hdr文件并将它们导入excel文档。这就是我到目前为止代码的注意事项(注意:到目前为止,只有当我创建了txt文件的那一天,我认为有一天我已经尝试过它并且它很好然后下一次没有改变任何它停止工作)

Dim FileName As String
Dim MostRecentFile As String
Dim MostRecentFileHdr As String
Dim MostRecentDate As Date
Dim Path As String

Directory = "C:"
FileName = Dir(Directory & FileSpec, 0)
If FileName <> "" Then
   MostRecentFile = FileName
   MostRecentDate = FileDateTime(Directory & FileName)
     Do While FileName <> ""
      If FileDateTime(Directory & FileName) > MostRecentDate Then
        MostRecentFile = FileName
        MostRecentDate = FileDateTime(Directory & FileName)
      End If
      FileName = Dir
    Loop
End If

Path = "C:\Results\"
NewestFile = Path + MostRecentFile

ChDir "C:\Results"
Workbooks.OpenText FileName:=NewestFile, Origin:= 437, StartRow:=1; 
DataType:=xlDelimited, TextQualifier:=xlNone, ConsecutiveDelimiter:=True, 
Tab:=True, Semicolon:=True, Comma:=True, Space:=True, Other:=False, 
FieldInfo:=Array(Array(1, 1),etc... TrailingMinusNumbers:=True 
ActiveWindow.SmallScroll Down:=-108

看起来如果文件不是在我运行代码的同一天创建的,它会跳过文件名的内容并跳转到数组部分。

一旦我能够在同一个工作簿上打开最新的Hdr和Chr文档,无论它何时创建,我都需要将其保存为原始名称,因此Test1.xls将是这个文件的名称。我已经尝试过使用* _Hdr.txt之类的东西,但是对于VB来说还是比较新的我不确定在我希望它用于的应用程序类型中是否可以像这样使用通配符。

我意识到这有很多要求提供的信息很少,但任何帮助将不胜感激

0 个答案:

没有答案