一旦工作簿中的Excel工作表保存为.csv,无法返回到.xlsm

我有一个多张工作簿。 我按(function区)button和一个子例程保存多个表格作为.csv,popup一些Java代码,然后返回。 问题是:一旦它回来,工作簿已被转换为一个.csv文件(最后一个保存),没有进一步的.xlsm操作是可能的。

我该如何解决?

修订:

与Java或shell无关。 WHENEVER我这样做:

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

这将整个工作簿更改为someSheet.csv。 然后,工作簿的行为变得怪异。 我没有能够保存为.csv而不改变任何东西。

使用SaveCopyAs

它将原样保留原始工作簿并保存副本。 需要2007年或更新,但自从你提到一个丝带button,应该是罚款。 从链接:

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

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

在Excel中, Save As操作使用新名称和格式/样式创build工作簿的新副本,然后closures旧副本。

.csv文件不支持macros,所以您的工作簿按照devise行事。

为了在执行“ Save As后返回原始工作簿,您需要重新打开原始工作簿,然后closures新的.csv工作簿。

否则,你可以想出一个自定义的Export方法来将每个表单上的数据导出到一个.csv文件,但这似乎是不必要的复杂。