创建excel宏以打开.dat文件并将它们转换为excel中的Fixed Width .dat文件

时间:2014-05-06 22:09:32

标签: excel excel-vba fixed-width vba

我正在尝试将.dat文件转换为固定宽度的.dat文件。当我使用Macro Recorder时,会弹出这个:

Sub Macro6()
    Workbooks.OpenText Filename:= _
        "G:\N5Baseline\E1 and E3 Neuroscan\header files\2026E1BEC-1hB.dat", Origin:= _
        437, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), _
        Array(7, 1), Array(22, 1), Array(35, 1), Array(44, 1), Array(55, 1), Array(68, 1), Array(79 _
        , 1), Array(88, 1), Array(99, 1), Array(110, 1)), TrailingMinusNumbers:=True
    ChDir "C:\Users\admin\Desktop"
    ActiveWorkbook.SaveAs Filename:="C:\Users\admin\Desktop\Filename1.txt", _
        FileFormat:=xlText, CreateBackup:=False
End Sub

我希望能够在同一文件夹中的数百个文件上运行此宏。我希望它打开这个.dat文件,将其转换为固定宽度的.dat文件,然后将其保存在同一个文件夹中。我对VB脚本不太满意,所以如果可能请保持温和。

1 个答案:

答案 0 :(得分:0)

使用此代码查找所需的文件:

Dim FName As String
FName = Dir("e:\0\a\*.dat")
Do While FName <> ""
    Debug.Print FName
    FName = Dir
Loop

代替Debug.print,放置代码......或使用如下参数调用您的过程:

Macro6 ("e:\0\a\", FName)

新文件应命名为:

Left(FName, Len(FName) - 3) & "txt"

保存后,关闭文件

ActiveWorkbook.Close