创建excel宏以打开.dat文件并在excel中将其转换为固定宽度的.dat文件

创建excel宏以打开.dat文件并在excel中将其转换为固定宽度的.dat文件,excel,fixed-width,vba,Excel,Fixed Width,Vba,我正在尝试获取.dat文件并将其转换为固定宽度的.dat文件。当我使用宏记录器时,它会弹出以下内容: Sub Macro6() Workbooks.OpenText Filename:= _ "G:\N5Baseline\E1 and E3 Neuroscan\header files\2026E1BEC-1hB.dat", Origin:= _ 437, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Ar

我正在尝试获取.dat文件并将其转换为固定宽度的.dat文件。当我使用宏记录器时,它会弹出以下内容:

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脚本编写不太在行,所以如果可能的话,请温和一点。

使用以下代码查找您想要的文件:

Dim FName As String
FName = Dir("e:\0\a\*.dat")
Do While FName <> ""
    Debug.Print FName
    FName = Dir
Loop
新文件应命名为:

Left(FName, Len(FName) - 3) & "txt"
保存后,关闭文件

ActiveWorkbook.Close

我目前有这种编码,但它不喜欢后面的内容:Dim FName As String FName=DirG:\test*.dat While FName Workbooks.OpenText文件名:=FName_uu.Origin:=437,StartRow:=1,DataType:=xlFixedWidth,FieldInfo:=Array_u.Array0,1,Array7,1,Array22,1,Array35,1,Array44,1,Array55,1,Array68,_u1,Array79,1,Array88,1,Array99,1,Array110,1,TrailingMinusNumbers:=\uTrue ActiveWorkbook.SaveAs文件名:=FName xlText,CreateBackup:=False FName=Dir循环结束子名称仅重新返回文件名,而不是路径2°代码示例。如果不更改扩展名,将覆盖3°代码。。。
ActiveWorkbook.Close