沒有用宏做很多,但一些。我搜查了一下,發現了一些我需要做的但不確切的事情,並想知道有沒有人可以幫忙。
對於工作我有一個Excel工作簿和多個工作表,我創建一個副本並保存爲CSV,因爲我們使用的程序只接受txt或csv格式,因此每次我們要導入數據時都要保存。我基本上希望有一個數據表自動保存在文件夾中的csv文件中,該文件夾將不進行提示保存,因此程序可以自動從中導入數據。多工作表導出一個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