4

複数のシートを含むワークブックがあります。(リボン) ボタンを押すと、サブルーチンが複数のシートを .csv として保存し、いくつかの Java コードにシェルアウトしてから戻ってきます。問題は、戻ってくると、ブックが .csv ファイル (最後に保存されたもの) に変換されており、それ以上の .xlsm 操作ができないことです。

これを修正するにはどうすればよいですか?

修正:

Java やシェルとは関係ありません。私がこれをするときはいつでも:

Sheets("someSheet").SaveAs Filename:=someName, FileFormat:=xlCSV

これにより、ワークブック全体が someSheet.csv に変更されます。すると、ブックの動作がおかしくなります。すべてを変更せずに .csv として保存することはできませんでした。

4

2 に答える 2

3

を使用しSaveCopyAsます。

元のブックをそのままにして、コピーを保存します。2007以降が必要ですが、リボンボタンについて言及しているので問題ありません。リンクから:

ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"

http://msdn.microsoft.com/en-us/library/office/bb178003(v=office.12).aspx

于 2012-12-19T18:27:52.823 に答える
2

Excel では、このSave As操作により、新しい名前と形式/スタイルでブックの新しいコピーが作成され、古いブックが閉じられます。

.csv ファイルはマクロをサポートしていないため、ブックは設計どおりに動作しています。

を実行した後に元のワークブックに戻るには、元のワークブックSave Asを再度開いてから、新しい .csv ワークブックを閉じる必要があります。

それ以外の場合は、各シートのデータを .csv ファイルにエクスポートするカスタム メソッドを考え出すこともできますExportが、それは不必要に複雑に思えます。

于 2012-12-19T17:28:11.853 に答える