再次保存为 CSV 文件时 Excel 崩溃

Posted

技术标签:

【中文标题】再次保存为 CSV 文件时 Excel 崩溃【英文标题】:Excel crashes when saved as CSV file a second time 【发布时间】: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 文件替换旧文件时发生这种情况。 【参考方案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”。

以上是关于再次保存为 CSV 文件时 Excel 崩溃的主要内容,如果未能解决你的问题,请参考以下文章

为啥将excel格式数据保存为csv格式时,开头为0的数据都把0丢失了呢??

excel另存为csv时,身份证号后4位全部变成0了, 怎么解决

如何使用openoffice打开excel文件并保存为csv

csv格式文件用excel打开身份证显示错误

关于excel保存为csv格式后,重新打开文本型数字变为科学计数,且15位后面变成0??

csv文件,excel保存后再打开乱码。