javascript - 查找所有带有转义公式的单元格 '=
问题描述
我有一张表,其中包含许多已被注释或转义的公式(不确定哪个术语,如果有的话是准确的)'=
。我现在正试图找到并删除'
没有任何运气。
我可以弄清楚公式的重写,它只是'=
我挂断的位置。我不太确定... == 0)
这些陈述的部分是什么if
意思,所以这是我的第一个问题。但我敢肯定我的也可能有问题keyword
。
function resetFormula(sheet, range) {
formulas = range.getFormulas();
for (var r = 0; r < formulas.length; r++) {
for (var c = 0; c < formulas[r].length; c++) {
var formula = formulas[r][c];
var value = sheet.getRange(r + 1, c + 1).getValue();
var value = value + "";
// var keyword = "'="; // no results
// var keyword = "'"; // finds all cells with '. Not that BEGIN with '
var keyword = "'\="; // no results
if (formula.indexOf(keyword) == 0) {
console.log("(formula.indexOf(keyword) == 0)");
console.log("formula = " + formula);
// sheet.getRange(r + 1, c + 1).setFormula(formula);
} else {
if (value.indexOf(keyword) == 0) {
console.log("(value.indexOf(keyword) == 0)");
console.log("value = " + value);
// sheet.getRange(r + 1, c + 1).setValue(value);
}
}
}
}
}
解决方案
解释:
- 在无法查看文件本身的情况下调试您的代码对我来说真的很困难,但我认为不值得调试它而是创建一个新的解决方案,因为您当前的方法不遵循最佳实践,即迭代使用
getRange
,getValue
并且setValue
会花费你很多性能,因此你将不得不重新设计你的逻辑。
您的目标是'=
从“公式”中删除。
- 请记住,这样的公式实际上(如您所说)已被注释掉,这意味着它是一个简单的字符串:
'=sum(B1)
。因此,使用getFormulas是行不通的,因为您感兴趣的值是strings
而不是公式。您需要改用getValues。
解决方案:
假设以下表格带有随机数据:
以下脚本将从'
包含它的每个单元格中删除:
function myFunction1() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName("Sheet1");
const charToDel = "'=";
const range = sh.getDataRange();
const [values, formulas] = [range.getValues(),range.getFormulas()];
const new_vals=formulas.map((r,i)=>r.map((c,j)=>c==''?values[i][j]:c.toString().
includes(charToDel)?c.replace(charToDel,''):c));
range.setValues(new_vals);
}
执行脚本后的结果将是相关单元格中的公式:
边注:
我认为更改我的代码以适应您的逻辑非常简单。而不是sh
使用sheet
和删除range
,因为它是由函数传递的。当然在函数中添加相关参数。
参考:
推荐阅读
- javascript - PHP 中的 HLS 视频播放器
- python - 数独 - 检查行和列中是否有重复项
- windows - Autohotkey - 发送 ctrl+ 以在 Windows 文件资源管理器中自动调整列宽
- android - 验证后转到下一个片段
- r - R. P值计算中的Stata lincom函数等效?
- c# - 在没有 Prism 中的 ViewModel 类的情况下加载视图后运行任务
- django - Django - 仅在表单更改时显示消息
- javascript - 样式化组件:在滚动时传递状态
- python - 在 PySimpleGUI 中集成 Pygame
- python - 如何根据 txt 文件中的 url 从多个页面中抓取文本正文