【发布时间】:2017-12-11 13:35:13
【问题描述】:
我想在 Google 电子表格中搜索“xyz”的所有实例,并将每个“y”替换为单元格引用和工作表名称。
想象一下,我在一张名为“星期一”的表格中有这张表格:
甲乙 1 xyz 2 xyz然后我想要替换 A1 和 B2 中的文本,结果是这样的:
甲乙 1 xA1星期一z 2 xB2Mondayz剩下的工作表以此类推。
到目前为止,我还没有找到类似的问题...
我的代码如下所示:
function replaceY() {
var spreadsheet = SpreadsheetApp.getActive();
var sheets = spreadsheet.getSheets();
//Do for each sheet
for(m = 0; m < sheets.length; m++){
var data = sheets[m].getDataRange().getValues();
for(var i = 0; i < data.length; i++){
for(var n = 0; n < data[0].length; n++){
if(typeof(data[i][n]) == 'string'){
var regex = /.*(y).*/ig;
var result = regex.exec(data[i][n]);
if(result[1] !== null){
var currentCellAddress = sheets[m].getActiveRange();
// Loop through regex matches and replace every group
// with currentCellAddress and sheet name
}
}
}
}
}
}
我意识到我在这里可能超出了我的深度,但如果你知道解决方案,我会很高兴看到它!
更新 我收到的错误是:无法读取 null 的属性“1”。 这没有任何循环匹配。
【问题讨论】:
-
代码有什么问题?你有错误吗? :)
-
@sniperd 是的。 TypeError:无法读取 null 的属性“1”。这没有任何循环匹配。
-
为什么不使用 indexOf('String') 方法?
标签: regex google-apps-script google-sheets