Excel 将工作表导出到Txt
我需要将多个工作表导出到.txt文件。我希望它们保存在与工作簿相同的位置。我还需要工作表名称是.txt文件名。下面的代码是到目前为止我所拥有的,但是我在工作表(ws.Name)上发现了一个调试错误。选择…有什么想法吗?谢谢大家 此外,我将其存储在我的个人工作簿中,以便我可以在打开的任何文件中使用它Excel 将工作表导出到Txt,excel,vba,export,Excel,Vba,Export,我需要将多个工作表导出到.txt文件。我希望它们保存在与工作簿相同的位置。我还需要工作表名称是.txt文件名。下面的代码是到目前为止我所拥有的,但是我在工作表(ws.Name)上发现了一个调试错误。选择…有什么想法吗?谢谢大家 此外,我将其存储在我的个人工作簿中,以便我可以在打开的任何文件中使用它 Sub Worksheets_to_txt() '<--Saves each worksheet as a text file with the same name Dim ws As
Sub Worksheets_to_txt() '<--Saves each worksheet as a text file with the same name
Dim ws As Worksheet
Dim relativePath As String
Dim answer As VbMsgBoxResult
relativePath = ThisWorkbook.Path
answer = MsgBox("Are you sure you want to export worksheets?", vbYesNo, "Run Macro") '<--Pop up box to confirm export
If answer = vbYes Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Worksheets
Sheets(ws.Name).Select
Sheets(ws.Name).Copy
ActiveWorkbook.SaveAs Filename:= _
relativePath & "\" & ws.Name & ".txt", _
FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close
ThisWorkbook.Activate
Next
End If
End Sub
子工作表\u to_txt()”如果打开了2个或多个工作簿(个人和其他),请更换:
For Each ws In ThisWorkbook.Worksheets
与
这样,选择将起作用。(除非正确的工作簿也处于活动状态,否则无法选择工作表)
还修复:
ThisWorkbook.Activate
在循环的底部如果打开了两个或多个工作簿(个人和其他),请更换:
For Each ws In ThisWorkbook.Worksheets
与
这样,选择将起作用。(除非正确的工作簿也处于活动状态,否则无法选择工作表)
还修复:
ThisWorkbook.Activate
在循环的底部试试这个
Sub Worksheets_to_txt() '<--Saves each worksheet as a text file with the same name
Dim ws As Worksheet
Dim relativePath As String
Dim answer As VbMsgBoxResult
relativePath = ActiveWorkbook.Path
answer = MsgBox("Are you sure you want to export worksheets?", vbYesNo, "Run Macro") '<--Pop up box to confirm export
If answer = vbYes Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ActiveWorkbook.Worksheets
ws.Select
ws.Copy
ActiveWorkbook.SaveAs Filename:= _
relativePath & "\" & ws.Name & ".txt", _
FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close
ActiveWorkbook.Activate
Next
End If
End Sub
子工作表\u到\u txt()”试试这个
Sub Worksheets_to_txt() '<--Saves each worksheet as a text file with the same name
Dim ws As Worksheet
Dim relativePath As String
Dim answer As VbMsgBoxResult
relativePath = ActiveWorkbook.Path
answer = MsgBox("Are you sure you want to export worksheets?", vbYesNo, "Run Macro") '<--Pop up box to confirm export
If answer = vbYes Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ActiveWorkbook.Worksheets
ws.Select
ws.Copy
ActiveWorkbook.SaveAs Filename:= _
relativePath & "\" & ws.Name & ".txt", _
FileFormat:=xlText, CreateBackup:=False
ActiveWorkbook.Close
ActiveWorkbook.Activate
Next
End If
End Sub
子工作表\u to_txt()'为什么工作表(ws.Name)。选择而不是简单地ws。选择?此外--在VBA中使用Select
几乎没有什么好的理由,尽管这是一个单独的问题。@johncolman我想我需要选择并复制工作表的名称,以便将其作为新的.text文件名引用?人需要单击工作表来处理它。VBA没有。您的select行完全不起作用ws.Copy
有意义,即使ws
未引用活动工作表。另外--ws
已经是对工作表的引用--只需使用它即可。直接参考ws
,而不是“名称与ws名称相同的工作表”。为什么选择工作表(ws.name)。选择而不是简单的ws.Select
?此外--在VBA中使用Select
几乎没有什么好的理由,尽管这是一个单独的问题。@johncolman我想我需要选择并复制工作表的名称,以便将其作为新的.text文件名引用?人需要单击工作表来处理它。VBA没有。您的select行完全不起作用ws.Copy
有意义,即使ws
未引用活动工作表。另外--ws
已经是对工作表的引用--只需使用它即可。直接参考ws
,而不是“名称与ws名称相同的工作表”。