多工作表导出一个CSV和自动保存没有提示

问题描述:

没有用宏做很多,但一些。我搜查了一下,发现了一些我需要做的但不确切的事情,并想知道有没有人可以帮忙。
对于工作我有一个Excel工作簿和多个工作表,我创建一个副本并保存为CSV,因为我们使用的程序只接受txt或csv格式,因此每次我们要导入数据时都要保存。我基本上希望有一个数据表自动保存在文件夹中的csv文件中,该文件夹将不进行提示保存,因此程序可以自动从中导入数据。多工作表导出一个CSV和自动保存没有提示

感谢所有帮助

+1

[将excel工作表保存为带有文件名+工作表名称的CSV文件使用VB]可能的副本(http://stackoverflow.com/questions/10551353/saving-excel-worksheet-to-csv-files-with-filenameworksheet- name-using-vb)如果你不喜欢提示,你可以在该解决方案中加入ApplicationDisplayAlerts = False。 – Ralph

简单的解决办法是使用的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时手动完成这两个标准提示。

这样,当文件存在或出现错误时,仍会提示您。

+0

我得到“下标超出范围”错误 –

+0

您是否用实际的表名替换了ThisWorkbook.Sheets(“Tabelle1”)? –