javascript - 脚本在多列循环上运行如何只回发一次,而不是每列
问题描述
我的功能运行良好
它通过标题找到一列,然后 tt 在直径上拆分列中的单元格值,而不是替换片段的值,然后将它们重新连接成一个字符串
并对标题列表中的所有列重复
这有点啰嗦,但我很惊讶我让它工作得和它一样好
我需要帮助的问题是它会在每个标题上回发,你如何让它只回发一次?
我试图弄清楚这一点,但无济于事
谢谢
function FindRsplace(shtName, frshtName, cheaders, frheaders, dilm1, dilm2) {
var sheet = SpreadsheetApp.getActive().getSheetByName(shtName);
var hn =[];
var fhn = [];
//Array of column indices from column headers
for (var k = 0; k <= cheaders.length-1; k++) {
hn[k] = HTN(shtName,cheaders[k]) - 1;
fhn[k] = HTN(frshtName,frheaders[k]);
}
for (var j = 0; j <= cheaders.length-1; j++) {
var frSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(frshtName);
var frLR = GLR(frshtName,frheaders[j],2); // Get the last row of the Search column NOT of the Sheet
var frRange = frSheet.getRange(2, fhn[j], frLR, 2);
var frValues = frRange.getValues();
// Read Height only once
var maxHeight = Range.getLastRow();
// Read all values and formulas at once
var rangeValues = Range.getValues();
// iterate through all cells in the selected range Look in Sheet
for (var cellRow = 0; cellRow < maxHeight; cellRow++) {
for (var i = 0; i < frValues.length; i++) {
//FindReplace string fragments
rangeValues[cellRow][hn[j]] = rangeValues[cellRow][hn[j]].toString().split(frValues[i][0]+dilm1).join(frValues[i][1]+dilm2).trim();
//Replaceing the last fragment or the only string without dilimeter
rangeValues[cellRow][hn[j]] = rangeValues[cellRow][hn[j]].toString().split(frValues[i][0]).join(frValues[i][1]).trim();
}
}
Range.setValues(rangeValues);
SpreadsheetApp.flush();
}
}
function FindRsplace_n() {
FindRsplace(
'sheet1', 'FindReplace',
["HeaderA", "HeaderB", "HeaderC"],
["frHeaderA", "frHeaderB", "frHeaderC"]],
",",
"|"
);
}
解决方案
推荐阅读
- python - 在我的这行代码中可以进行列表理解吗
- windows - 在 Perl 的 Windows 下使 STDIN 无缓冲
- com - 如何查询已安装的“打包 COM”扩展点
- python - 使用 Embedding 和 Keras 根据前 K 天的所有新闻预测股票趋势
- google-cloud-platform - 激活 GCP windows 服务器虚拟机失败
- android - 异步等待不等待输出返回
- laravel - 在 laravel Nova 中热显示名称而不是 id
- docker - 如何以 docker 容器用户的身份挂载 docker 卷?
- argocd - 未找到 argocd synchfailed ocp 资源“”
- javascript - 每当我尝试在应用程序的客户端注册时,我都会收到 POST 400(错误请求)错误