【问题标题】:Excel into CSV VBAExcel 转换为 CSV VBA
【发布时间】:2017-07-21 14:16:32
【问题描述】:

我无法将工作簿中的一张工作表保存到 CSV 文件中。我在一个工作簿中有 18 张纸。每次我运行宏时,它都会保存不同的工作表。我也需要它,因此不会弹出显示警报。我是 VBA 的初学者并正在运行宏,因此将不胜感激。

   Sub csvfile()
 '
 ' csvfile Macro
 '

 '

   ChDir "C:\Users\RM\Documents"
   ActiveWorkbook.SaveAs Filename:= _
    "C:\Users\RM\Documents\Working_Program\PSSE_Export_Data.csv", FileFormat:= _
    xlCSV, CreateBackup:=False
    Application.DisplayAlerts = False





End Sub

【问题讨论】:

  • Application.DisplayAlerts = False 需要在.SaveAs 之前,而不是之后。
  • 我相信ActiveWorkbook.SaveAs 会保存当前的活动表。因此,请确保您已激活要先保存的工作表。
  • 您可以先将DisplayAlerts = False 之前放在可能显示警报的操作之前,而不是之后。这是常识。你不能在马跑掉后关上谷仓的门,然后指望它神奇地把马放回马厩,对吗?
  • CSV 文件是纯文本文件,因此不能保存多张纸的数据。未经测试,我会假设 Excel 仅保存保存为 CSV 时当前可见的工作表
  • 您是否考虑过将活动工作表复制到新工作簿,然后将新工作簿另存为 CSV,因为 CSV 将只有一个未格式化的工作表?这将允许您为所有工作表运行一次宏。

标签: vba excel


【解决方案1】:

这应该可以解决问题,只需指定要保存的工作表来代替“Sheet1”

Sub csvfile()

Application.DisplayAlerts = False
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
ws.SaveAs Filename:= _
"C:\Users\RM\Documents\Working_Program\PSSE_Export_Data.csv", FileFormat:= _
xlCSV, CreateBackup:=False

End Sub

【讨论】:

  • 实际上我收到了一个错误,运行时错误。当我调试它时,它被突出显示:ws.SaveAs Filename:= _ "C:\Users\RM\Documents\Working_Program\PSSE_Export_Data.csv", FileFormat:= _ xlCSV, CreateBackup:=False
  • 没关系,我把它保存在错误的目录下。另外,我有一个关于在当前 CSV 打开时运行宏的问题。我总是收到一个错误。有没有办法在 CSV 文件打开时运行该程序。只是好奇。宏代码仅在您创建的 CSV 文件未打开时才有效。假设我必须更新信息,而不是创建新的 CSV 文件,有没有办法保存当前文件。
  • 如果文件已打开,您将始终收到运行时错误。如果您收到特定的运行时错误,您唯一能做的就是将其另存为另一个文件名。出于好奇,对这个功能有什么需求?...只是想知道我是否可以建议其他解决方案
  • 我的目标是重写和替换csv文件。例如,如果该表上的数字要更改。此 VBA 将自动替换并保存新数据。而不是我一直必须自己保存它,并在保存 CSV 文件时弹出两条消息。如果有更有效的方法,我会全力以赴。
  • 嗨,马克,只是一个建议,不知道它是否适合您的需求,但听起来您遇到了麻烦,因为人们可以在您尝试编辑/重新保存时使用 csv 文件文件。您可以通过编程方式将 csv 文件设置为只读,然后人们只能读取数据,但您可以随意保存。
猜你喜欢
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-02
  • 2014-11-19
  • 2012-10-10
相关资源
最近更新 更多