从XLSX到TXT.有关如何加快此子例程的任何提示



我有一个代码,将电子表格的每个纸转换为txt文件。

该代码运行良好,但是鉴于我想寻求有关如何加速此代码的建议。

这是我的代码:

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

预先感谢您的帮助!

,而不是复制每个纸

  • 保存此Workbook
  • 选择每个工作表
  • 将工作簿保存为文本 - 这仅将选择工作表保存为文本
  • 重新打开原始工作簿
  • 关闭最后一个文本文件
sub xlsxtotxt()    昏暗的我是整数    DIM目录为字符串    昏暗的fname作为字符串    DIM XWS作为工作表    DIM XTEXTFILE作为字符串    昏暗的rdate作为字符串    dim thisfullname作为字符串    thisfullname = thisworkbook.fullname    thisworkbook.save    目录= thisworkbook.sheets("宏")。范围(" d576")。值    rdate = thisworkbook.sheets("宏")。range(" e47")。值    i = 0    application.screenupdating = false    application.displayAlerts = false    在thisworkbook.sheets("宏")。        fname = sheet("宏")。范围(" d577")。偏移(i)。值        workbooks.open(目录和fname)        对于工作簿中的每个XW(fname)。            xws.select            XtextFile = Directory&rdate&"  - "&xws.name&" .txt"            thisworkbook.saveas fileName:= xtextfile,fileformat:= xlText        下一个        i = i   1    环形    application.workbooks.poen thisfullname    thisworkbook.close false    application.screenupdating = true    application.displayAlerts = true结束子

最新更新