我的功能如下:
Sub saveCSV()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"c:\temp\file.csv", FileFormat:=xlCSV _
, CreateBackup:=False
End Sub
Run Code Online (Sandbox Code Playgroud)
我正在尝试将活动工作表导出为CSV.当我在标题中运行代码时,Book1.xlsm更改为file.csv,Sheet1更改为文件.出口工作正常.如何在没有这些不必要的副作用的情况下进行导出?
这一直是SaveAs的工作方式.解决这个问题的唯一方法是复制工作表并在副本上执行SaveAs,然后关闭它.
编辑:我应该添加一个例子,因为它并不难做到.这是一个将示例复制ActiveSheet到新工作簿的快速示例.
Dim wbk As Workbook
Set wbk = Workbooks.Add
ActiveSheet.Copy wbk.Sheets(1) ' Copy activesheet before the first sheet of wbk
wbk.SaveAs ....
wbk.Close
Run Code Online (Sandbox Code Playgroud)
复杂的工作簿可能会出现链接和宏的问题,但在普通情况下这是安全的.
编辑2:我知道你正在尝试做什么,因为你的另一个问题是关于尝试在每次更改工作表时触发导出.此处提供的此抄表方法可能具有高度破坏性.
我的建议是手动编写CSV文件以最大限度地减少GUI中断.如果以高频率进行保存,则纸张可能变得不可用.我不会在Excel的门口为此负责,它根本不是为了在幕后进行快速保存而构建的.
| 归档时间: |
|
| 查看次数: |
17216 次 |
| 最近记录: |