【发布时间】:2021-01-26 14:20:01
【问题描述】:
由于宏实际上并未记录“查找和替换”操作,我正在尝试获取一个脚本来查找和替换可以在多个单元格中找到的某些字符串。例如;我有一个包含“Fred and Joe”的单元格,我需要去掉“and”。在另一个单元格中,我可能有“Fred, Joe”,我需要去掉“,”。
我已经尝试了以下方法,但它仅在单元格仅包含“AND”时才有效。当单元格包含“var f”时,我需要脚本来替换值:
}
function FandR(){
var sh = SpreadsheetApp.getActiveSpreadsheet();
var ss = sh.getSheetByName("Sheet1");
var f = "and";
var r = ",";
var data = ss.getDataRange().getValues();
Logger.log(data.length);
for (var i = 0; i < data[0].length;i++){
for (var j = 0; j < data.length;j++){
if(data[j][i]==f)
ss.getRange(j+1,i+1).setValue(r);
}
}
}
【问题讨论】:
-
当单元格包含“var f”时,是什么意思?你指的是实际的字符串'var f'吗?在这种情况下,您只需将
if(data[j][i]==f)替换为if(data[j][i]==f || data[j][i]=='var f') -
感谢您的快速回复 :-) 我的意思是即使单元格包含其他字符,“and”也应替换为“”。通过替换那行代码,我没有得到预期的结果。该脚本仅替换仅包含“and”的单元格,但不替换包含“and”和其他字符的单元格...
-
嗨@Marc,在这种情况下,您应该使用
indexOf()来检查单元格包含字符串而不是==(检查单元格值是否等于字符串);我发布了代码作为答案。
标签: google-apps-script google-sheets replace find regexp-replace