【发布时间】:2017-10-24 15:38:58
【问题描述】:
我想打开几个带有多个电子表格的工作簿文件 (xlsx),丢弃每个单元格中的公式,只保留其中的数据。我会手动完成,但至少有 500 个工作簿我想自动化任务。
我发现自己有多个部分解决方案。也许最简单的方法是通过 vba 来完成,但我不知道如何编写这些指令。我可以管理的其他解决方案是通过 R。
我测试了几个包,最有用的是 xlsx,不幸的是我一次只能保存 1 个电子表格,每个工作簿有 15 个以上,我没有找到如何将每个电子表格合并到一个文件中(一个工作簿) .
到目前为止,我的解决方案是在循环中打开文件,然后使用 XLConnect 再次保存它们。我搜索了一个 write-without-formula ,知道存在 open-without-formula ,但我没有找到选项......这些包有一个简单的解决方案还是我应该更多地进入 VBA ?
暂定在 r 中:
library("XLConnect")
wbdir <- setwd("C:/Users/blabla/Desktop/wbfiles")
wblist <- list.files(wbdir)
i <- 0L
for (i in 1:length(wblist)) {
wb_formulas <- loadWorkbook(wblist[[i]])
# something to overwriteformulas : opening witout formulas like xlsx/openxlsx package
# writing without ...
wb_df <- saveWorkbook(wb_formulas, paste(c("wb_", i,".xlsx"),collapse = ""))
}
【问题讨论】:
-
VBA 可以轻松做到这一点,您也可以在不打开文档的情况下做到这一点。 Excel 可以将它们作为“只读”文件读取...我进行了快速搜索,这是一个很好的资源,可以帮助您入门encodedna.com/excel/…
-
我会使用 vba。分解任务。遍历书籍,然后运行一个打开、复制信息、粘贴到其他书籍的函数,然后关闭示例书籍。不过你可以很好地使用 r。
-
请发布您已经尝试过的代码
-
edited 编辑 @Maldred 检查链接,如果无法避免这部分,我也会尝试检查一些简单的 VBA 代码