【问题标题】:Excel crashes when saved as CSV file a second time再次保存为 CSV 文件时 Excel 崩溃
【发布时间】:2017-04-12 14:07:21
【问题描述】:

当我第一次运行代码时,它会替换现有文档并毫无问题地保存 CSV 文件。但是当我第二次运行代码时,保存 CSV 时 Excel 会崩溃。

我有一个解决方法,在第一次运行代码后重新打开 Excel,但它需要太多时间,有什么想法吗?

Sub copiar_ayuda1()
  Application.DisplayAlerts = False
  With Sheets("input11")
    .Select
    .Move
  End With
  PathName = "" & ThisWorkbook.Path & "os.csv"

  ActiveWorkbook.SaveAs Filename:=PathName, FileFormat:=xlCSV, CreateBackup:=False

  Application.CutCopyMode = False
  ActiveWorkbook.Saved = True
  ActiveWorkbook.Close

End Sub

【问题讨论】:

  • 你到底想做什么?是把Sheets("input11")保存为CSV文件格式吗?
  • 您遇到的错误是什么?哪个指令导致它?您的问题不完整,请edit - 等等,不,没有错误,是吗?所以代码有效,但速度很慢?你能澄清你的帖子吗?
  • 好的。我有一个 excel,我想将工作表(“input11”)保存为 CSV 格式。我第一次运行代码没有问题,创建的 CSV 替换了现有的。当我第二次运行它时,excel 崩溃了:“Microsoft excel 已停止工作”。当我保存新的 CSV 文件替换旧文件时发生这种情况。

标签: excel vba csv crash save


【解决方案1】:

如果您尝试将Sheets("input11") 保存为“CSV”文件,您只需:

Option Explicit

Sub copiar_ayuda1()

Dim PathName As String
Dim Sht As Worksheet

Application.DisplayAlerts = False

PathName = ThisWorkbook.Path & "\os.csv"

Set Sht = ThisWorkbook.Worksheets("input11")
With Sht
    .SaveAs Filename:=PathName, _
    FileFormat:=xlCSV, CreateBackup:=False
End With

Application.CutCopyMode = False

End Sub

【讨论】:

  • @Diego Bauza 你试过上面的代码吗?它是否按您的预期工作?
  • 感谢您的回答。它没有按我的预期工作。它将工作表的名称“input11”替换为“os”,并将整个原始文件以 CSV 格式保存,名称为“os”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-21
  • 2019-04-26
  • 2012-08-16
  • 2013-04-21
  • 1970-01-01
相关资源
最近更新 更多