从xlsx到txt。 任何提示如何加快这个子程序?
我有一个代码将电子表格的每个工作表转换为一个txt文件。
代码运行良好,但是考虑到大量的出口(abuot 90 txt文件),我想寻求如何加快这个代码的build议。
这是我的代码:
Sub xlsxTotxt() Dim i As Integer Dim directory As String Dim fname As String Dim xWs As Worksheet Dim xTextFile As String Dim rdate As String directory = ThisWorkbook.Sheets("Macro").Range("D576").Value rdate = ThisWorkbook.Sheets("Macro").Range("E47").Value i = 0 Application.ScreenUpdating = False Application.DisplayAlerts = False Do While ThisWorkbook.Sheets("Macro").Range("D577").Offset(i).Value <> "" fname = Sheets("Macro").Range("D577").Offset(i).Value Workbooks.Open (directory & fname) For Each xWs In Workbooks(fname).Worksheets xWs.Copy xTextFile = directory & rdate & " - " & xWs.name & ".txt" Application.ActiveWorkbook.SaveAs filename:=xTextFile, FileFormat:=xlText Application.ActiveWorkbook.Saved = True Application.ActiveWorkbook.Close Next Workbooks(fname).Close i = i + 1 Loop Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub
在此先感谢您的帮助!
而不是复制每张表
- 保存此工作簿
- select每个工作表
- 将工作簿保存为文本 – 这只会将select工作表保存为文本
- 重新打开原始工作簿
- closures上一个文本文件
Sub xlsxTotxt() 昏暗我作为整数 昏暗的目录为string 昏暗的fname作为string 昏暗的xWs作为工作表 Dim xTextFile As String 昏暗rdate作为string Dim ThisFullName As String ThisFullName = ThisWorkbook.FullName ThisWorkbook.Save directory = ThisWorkbook.Sheets(“Macro”)。Range(“D576”)。value rdate = ThisWorkbook.Sheets(“Macro”)。Range(“E47”)。value 我= 0 Application.ScreenUpdating = False Application.DisplayAlerts = False Do While ThisWorkbook.Sheets(“Macro”)。Range(“D577”)。Offset(i).value“” fname = Sheets(“Macro”)。Range(“D577”)。Offset(i).value Workbooks.Open(目录&fname) 对于工作簿(fname).Worksheets中的每个xWs xWs.Select xTextFile =目录&rdate&“ - ”&xWs.Name&“.txt” ThisWorkbook.SaveAs文件名:= xTextFile,FileFormat:= xlText 下一个 我=我+ 1 循环 Application.Workbooks.Open ThisFullName ThisWorkbook.Close False Application.ScreenUpdating = True Application.DisplayAlerts = True 结束小组