用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