多工作表导出一个CSV和自动保存没有提示
没有用宏做很多,但一些。我搜查了一下,发现了一些我需要做的但不确切的事情,并想知道有没有人可以帮忙。
对于工作我有一个Excel工作簿和多个工作表,我创建一个副本并保存为CSV,因为我们使用的程序只接受txt或csv格式,因此每次我们要导入数据时都要保存。我基本上希望有一个数据表自动保存在文件夹中的csv文件中,该文件夹将不进行提示保存,因此程序可以自动从中导入数据。多工作表导出一个CSV和自动保存没有提示
感谢所有帮助
简单的解决办法是使用的Worksheet.Copy:
如果不指定之前或之后,Microsoft Excel中创建包含复制的表对象的新的工作簿包含复制的Worksheet对象。新创建的工作簿包含Application.ActiveWorkbook属性(Excel)属性并包含一个工作表。
单个工作表保留源工作表的Worksheet.Name属性(Excel)和Worksheet.CodeName属性(Excel)属性。
如果复制的工作表在VBA项目中持有工作表代码表,那么这也会带入新的工作簿。
尝试:
Option Explicit
Sub Main()
' Call your Sub
CopySheet2CSV ThisWorkbook.Sheets("Tabelle1")
End Sub
Sub CopySheet2CSV(ws As Worksheet)
ws.Copy
ActiveWorkbook.SaveAs Filename:="C:\Users\b036081\NoBackupData\" & ws.Name & ".csv", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWindow.Close Savechanges:=False
End Sub
的事实大写字母表示.Copy
方便地设置ActiveWorkbook
包含您的单张新建工作簿。
将其另存为csv,然后关闭它,从而返回到您的源工作表。
注意:不要明确关闭所有提示。相反,省略通过在保存时设置CreateBackup:=False
并在关闭csv-workbook时设置Savechanges:=False
时手动完成这两个标准提示。
这样,当文件存在或出现错误时,仍会提示您。
我得到“下标超出范围”错误 –
您是否用实际的表名替换了ThisWorkbook.Sheets(“Tabelle1”)? –
[将excel工作表保存为带有文件名+工作表名称的CSV文件使用VB]可能的副本(http://stackoverflow.com/questions/10551353/saving-excel-worksheet-to-csv-files-with-filenameworksheet- name-using-vb)如果你不喜欢提示,你可以在该解决方案中加入ApplicationDisplayAlerts = False。 – Ralph