用vba把TXT转换成XLS,批量转换
txt在一个文件夹内,有很多,文件名是无序的,不能直接改后缀,数据不会被放入一个格子内,
我打开一个空白EXCEL,点“打开”类型选文本文件,选择了一个txt文件,在弹出的对话框中选择按“固定宽度”这样能达到我想要的效果,
但我的文档很多,不能全都这样手动,vba能实现自动批量转吗,可以得话写个代码吧!!!!
EXCEL文件中C,D两列是时间,需要在E列中计算D-C(每列对应的相减),再统计差值的绝对值大于15秒的个数,这个也能批处理吗?也给个代码吧
[解决办法]
第一题
Sub InportTxt() Set fs = CreateObject("Scripting.FileSystemObject") Dim objFile As Scripting.File Dim objFolder As Scripting.Folder Dim objWB As Excel.Workbook Dim strObjFolder As String '我假设的路径,你可以通过参数传入,或者让用字自己选(commandialog) strObjFolder = "C:\123\" '设置要处理的目录,这个目录里面方的都是需要导入的txt文件 If objfs.FolderExists(strObjFolder) Then Set objFolder = objfs.GetFolder(strObjFolder) End If '循环每一个文件,进行导入处理 For Each objFile In objFolder.Files '只处理txt文件,其他文件不处理 If Right(objFile.Name, 3) = "txt" Then '导入文件,注意,这个固定列的列宽和列数,就是Array(Array(0, 1), Array(8, 1), Array(16, 1), Array(24, 1)) ,如果不同,请修改这里 Application.Workbooks.OpenText objFile, Origin:= _ 936, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:=Array(Array(0, 1), _ Array(8, 1), Array(16, 1), Array(24, 1)), TrailingMinusNumbers:=True Set objWB = Application.ActiveWorkbook '保存为同名文件并关闭 objWB.SaveAs objFile & ".xlsx" objWB.Close End If Next End Sub