我有一个代码,将电子表格的每个纸转换为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结束子