首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 办公应用 > OFFICE教程 >

用vba把TXT转换成XLS,批量变换

2012-12-27 
用vba把TXT转换成XLS,批量转换txt在一个文件夹内,有很多,文件名是无序的,不能直接改后缀,数据不会被放入一

用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

热点排行