0

我尝试将 excel 电子表格的每个工作表保存到 CSV 文件中。以下脚本完成了这项工作。该行.Parent.Close savechanges:=False应该关闭创建的工作表,但是当取消注释时,脚本在第一张工作表之后停止。如果我评论该行,所有工作表都会被处理。

Dim newWks As Worksheet
Dim wks As Worksheet

For Each wks In ActiveWorkbook.Worksheets
wks.Copy 'to a new workbook
Set newWks = ActiveSheet
With newWks
.SaveAs Filename:="C:\home\tmp\base\" & wks.Name & ".txt", FileFormat:=xlTextWindows
.Parent.Close savechanges:=False
End With
Next wks

MsgBox "done with: " & ActiveWorkbook.Name
4

1 回答 1

1

您正在关闭活动工作簿。如果要关闭新创建的对象,请执行以下操作(对其进行了测试并且对我有用):

Dim newWkb As Workbook
Dim wks As Worksheet

For Each wks In ActiveWorkbook.Worksheets
  wks.Copy 'to a new workbook
  Set newWkb = ActiveWorkbook
  With newWkb
    .SaveAs Filename:="C:\home\tmp\base\" & wks.Name & ".txt", FileFormat:=xlTextWindows
    newWkb.Close savechanges:=False
  End With
Next wks

MsgBox "done with: " & ActiveWorkbook.Name
于 2011-09-23T20:54:30.930 回答