Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 将文本文件导入excel并创建主工作簿_Vba_Excel - Fatal编程技术网

Vba 将文本文件导入excel并创建主工作簿

Vba 将文本文件导入excel并创建主工作簿,vba,excel,Vba,Excel,我是一名研究生,收集了大量存储在txt文件中的数据。我想以固定宽度导入文本文件,a、b和c列都是12,然后将这些文件保存为excel文件,然后将它们移动到主工作簿中。我发现下面的代码用于制作主工作簿,但它没有按数字顺序导入它们 我正在使用微软2010 Sub Merge2MultiSheets() Dim wbDst As Workbook Dim wbSrc As Workbook Dim wsSrc As Worksheet Dim MyPath As String Dim strFilen

我是一名研究生,收集了大量存储在txt文件中的数据。我想以固定宽度导入文本文件,a、b和c列都是12,然后将这些文件保存为excel文件,然后将它们移动到主工作簿中。我发现下面的代码用于制作主工作簿,但它没有按数字顺序导入它们

我正在使用微软2010

Sub Merge2MultiSheets()
Dim wbDst As Workbook
Dim wbSrc As Workbook
Dim wsSrc As Worksheet
Dim MyPath As String
Dim strFilename As String
Application.DisplayAlerts = False
Application.EnableEvents = False
Application.ScreenUpdating = False
MyPath = "C:\Users\Kyle\Desktop\Scan Rate Study 1-14-16"
Set wbDst = Workbooks.Add(xlWBATWorksheet)
strFilename = Dir(MyPath & "\*.xls", vbNormal)
If Len(strFilename) = 0 Then Exit Sub
Do Until strFilename = ""
Set wbSrc = Workbooks.Open(Filename:=MyPath & "\" & strFilename)
Set wsSrc = wbSrc.Worksheets(1)
wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
wbSrc.Close False
strFilename = Dir()
Loop
wbDst.Worksheets(1).Delete
Application.DisplayAlerts = True
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
考虑使用对象遍历
MyPath
目录并复制
.xls
文件。当前,您的设置正在导入目录中所有类似Excel的文件:

Sub Merge2MultiSheets()
    Dim MyPath As String
    Dim wbDst As Workbook, wbSrc As Workbook, wsSrc As Worksheet
    Dim fso As Object, olFolder As Object, olFile As Object

    Application.DisplayAlerts = False
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    MyPath = "C:\Users\Kyle\Desktop\Scan Rate Study 1-14-16"

    Set wbDst = Workbooks.Add(xlWBATWorksheet)

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set olFolder = fso.GetFolder(MyPath)

    For Each olFile In olFolder.Files
        If Right(olFile.Name, 4) = ".xls" Then

            Set wbSrc = Workbooks.Open(olFile.Name)
            Set wsSrc = wbSrc.Worksheets(1)
            wsSrc.Copy After:=wbDst.Worksheets(wbDst.Worksheets.Count)
            wbSrc.Close False

        End If
    Next olFile

    wbDst.Worksheets(1).Delete
    Application.DisplayAlerts = True
    Application.EnableEvents = True
    Application.ScreenUpdating = True

    Set olFile = Nothing
    Set olFolder = Nothing
    Set fso = Nothing
End Sub

目录中.xls文件的命名约定是什么?它们是按数字顺序排列的吗?我保持它们与文本文件相同。通常是KAVCVXXX,X是一些数字,是的,它们总是有序的