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