创建excel宏以打开.dat文件并在excel中将其转换为固定宽度的.dat文件
我正在尝试获取.dat文件并将其转换为固定宽度的.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
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