excel - 将工作表保存为 CSV,且 Excel 公式完好无损

标签 excel csv excel-formula vba

我完全使用 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

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

问题:

我需要 CSV 文档来包含 Excel 公式,而不是公式的计算结果。公式的结果可以被丢弃。 The Microsoft website说:

If cells display formulas instead of formula values, the formulas are converted as text. All formatting, graphics, objects, and other worksheet contents are lost. The euro symbol will be converted to a question mark.

这意味着 SaveAs 函数可能永远不会执行我想要它执行的操作,但我需要某种方法来创建文件。理想情况下,我希望保持 Excel 转义 CSV 单元格的能力完好无损。 CSV 文件将由 Java 和 SQL 程序读取,这些程序可以根据需要正确解析 Excel 函数。

最佳答案

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

ActiveWindow.DisplayFormulas = True

在调用 SaveAs 之前。

关于excel - 将工作表保存为 CSV,且 Excel 公式完好无损,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9491719/

相关文章:

excel - 使用表名检查特定表是否存在时的 VBA Excel 错误处理

vba - 简单的VBA选择: Selecting 5 cells to the right of the active cell

python - 合并 Pandas 列(一对多)

mysql - 当单元格/列包含某些文本时,如何从Excel数据集中提取所有行

javascript - 如何使用 office.js Excel Addin 中的行号和列号获取完整的 Excel 范围地址?

Azure逻辑应用程序计算CSV文件中列的总和

python - 单个 CSV 文件中的多个分隔符

c - 从文件读取数据后动态存储数据

Excel Sumif 公式

string - 如何仅删除前导和尾随空格,同时使用 excel 公式在单词之间单独留下空格?