2017-04-23 9 views
1

フォームを作成するときに、記入すると出力として2つのファイルが生成されます。VBAでシートを保存する方法

私はバックグラウンドで2枚のシートを用意しています。これは、ユーザーがボタンを入力したことに応じて(CSVとして)記入します。

この問題は、ユーザーがボタンを押した後、彼が充填された形は、現在「csvファイルとして保存」されていることで、前のようにXLSMないシート状

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

を保存するためのコードです。

これを回避する方法はありますか?フォームに影響を与えずに出力を生成するには?

ありがとうございます!

+2

ない、私はそれが唯一のVBA 'User_Form'sせずに、ワークシートを保存していますので、あなたが.csv''として保存されている、あなたの質問にunderastandを確認します。これを試してみてください。 '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

ありがとうございます! –

関連する問題