我完全在Excel中使用VBA。我的解决方案必须完全程序化,而不是用户驱动。解决方案的要求是用户启动一个宏来获取工作簿并将8张工作表保存到单独的CSV文件中,保留公式并丢弃公式解决方案。我有一组表单(sht),我遍历并保存它们。以下代码完美地实现了这一点。使用Excel将工作表保存为CSV公式完好
For i = LBound(sht) To UBound(sht)
If (SheetExists(csv(i))) Then
Sheets(sht(i)).SaveAs _
fullpath & csv(i) & ".csv", _
FileFormat:=xlCSV, _
CreateBackup:=False
End If
Next i
凡FULLPATH包含的文件保存位置的完整路径,我写了一个测试,看看是否该板在工作簿中存在一个布尔函数。
问题:
我需要的CSV文件中包含的Excel公式,没有什么公式计算为。公式的结果可以被丢弃。 The Microsoft website说:
如果单元格显示公式而不是公式值,公式将转换为文本。所有格式,图形,对象和其他工作表内容都将丢失。欧元符号将被转换为问号。
这意味着SaveAs函数可能永远不会做我想做的事情,但我需要一些方法来创建文件。理想情况下,我希望保持Excel能够顺利逃脱CSV单元格。这些CSV文件将被Java和SQL程序读取,这些程序可以根据需要正确解析Excel函数。
你打算如何处理合并的单元格?如果公式包含换行符 - 它们是否应该在导出前被删除?你需要处理数组公式吗? – 2012-02-29 01:35:18
在运行SaveAs – 2012-02-29 01:42:28
@Tim Williams之前,您可以尝试激活每个工作表并添加“ActiveWindow.DisplayFormulas = True”。非常聪明。比我的建议更好。 – brettdj 2012-02-29 11:44:49