我完全使用Excel的VBA进行工作。我的解决方案必须完全是程序驱动的,而不是用户驱动的。该解决方案的要求是用户启动单个宏以将工作簿保存为8个单独的CSV文件,保留公式并丢弃公式的计算结果。我有一个表格数组(sht),我遍历它们并将它们保存。以下代码可以完美地实现这一点。
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公式,而不是公式计算出的结果。公式的结果可以被丢弃。 Microsoft网站说:
如果单元格显示公式而不是公式值,则将公式转换为文本。所有格式、图形、对象和其他工作表内容都将丢失。欧元符号将被转换为问号。
这意味着SaveAs函数可能永远不会按照我的意愿执行,但我需要一些方法来创建该文件。理想情况下,我想保留Excel对CSV单元格的转义能力。CSV文件将由Java和SQL程序读取,这些程序可以根据需要正确解析Excel函数。