将工作表保存为CSV,Excel公式保持不变

Rei*_*vax 5 csv excel vba excel-vba excel-formula

我完全在VBA for Excel工作.我的解决方案必须完全是程序化的,而不是用户驱动的.解决方案的要求是用户启动单个宏来获取工作簿并将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
Run Code Online (Sandbox Code Playgroud)

其中fullpath包含文件保存位置的完整路径,并且我编写了一个布尔函数,用于测试工作簿中是否存在工作表.

问题:

我需要CSV文档包含Excel公式,而不是公式评估的公式.公式的结果可以丢弃. 微软网站说:

如果单元格显示公式而不是公式值,则公式将转换为文本.所有格式,图形,对象和其他工作表内容都将丢失.欧元符号将转换为问号.

这意味着SaveAs函数可能永远不会做我想要它做的事情,但我需要一些方法来创建文件.理想情况下,我希望保持Excel能够完全逃脱CSV单元格的能力.Java和SQL程序将读取CSV文件,可以根据需要正确解析Excel函数.

Tim*_*ams 4

您可以尝试依次激活每个工作表,然后添加

ActiveWindow.DisplayFormulas = True
Run Code Online (Sandbox Code Playgroud)

在调用 SaveAs 之前。