2017-04-23 57 views
1

我正在構建一個表格,當您填充它時,它應該生成2個文件作爲輸出。如何在VBA中保存表格

爲了做到這一點,我有兩張背景,我填滿了,取決於用戶輸入一個按鈕來保存它們(如csv)。

這是用於保存代碼片狀

Worksheets("worksheetname").SaveAs Filename:="C:\path" & name & ".csv", FileFormat:=xlCSV, CreateBackup:=False 

的問題是,用戶按下按鈕後,他被填充的形式是現在「另存爲CSV」,而不是像XLSM前。

有沒有辦法避免這種情況發生?生成輸出而不影響表單?

謝謝!

+2

不確定我不能確定你的問題,你把它保存爲'.csv',所以它只保存工作表,沒有VBA'User_Form's。如果你想保留'User_Form',那麼你需要將它保存爲'.xlsm' –

+0

指定以下幾點:你開始的狀態究竟是什麼(所有數據/表單等)?你想要達到的狀態是什麼(什麼文件以什麼格式保存在什麼地方)? –

+0

爲每個新工作表創建一個新工作簿,然後將每個工作表保存爲.csv,就像您當前所做的一樣。這應該保持工作簿的形式不變。 –

回答

3

要保持原始工作簿完好無損,您需要先將工作表的副本分叉,然後再將其保存爲CSV。試試這個吧:

Application.DisplayAlerts = False 
Worksheets("worksheetname").copy ' Forks a copy of the sheet in a new, active WB 
With ActiveWorkbook 
    .SaveAs Filename:="C:\Path\" & name & ".csv", FileFormat:=xlCSV, CreateBackup:=False 
    .Close False 
End With 
Application.DisplayAlerts = True 
+1

非常感謝! –