[英]Altering find and replace Google Sheets script
我有以下脚本,尽管我想将其更改为仅在特定工作表(Sheet4!A:AB)上查找和替换。
我将如何去做:
function fandr() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getActiveSheet();
var r=s.getDataRange();
var vlst=r.getValues();
var i,j,a,find,repl;
find="abc";
repl="xyz";
for (i in vlst) {
for (j in vlst[i]) {
a=vlst[i][j];
if (a==find) vlst[i][j]=repl;
}
}
r.setValues(vlst);
}
我认为pnuts的评论对您的情况有所帮助。 如果您仍在寻找解决方案,该答案如何? 您要查找并替换Sheet4!A:AB
的值。 如果我的理解是正确的,我想提出两种模式。 我认为您有几种解决方案。 因此,请将此视为其中之一。
该修改是简单的修改。 它将检索值的范围修改为Sheet4!A:AB
。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var r = ss.getRange("Sheet4!A:AB");
var vlst = r.getValues();
var i, j, a, find, repl;
find = "abc";
repl = "xyz";
for (var i = 0; i < vlst.length; i++) {
for (var j = 0; j < vlst[i].length; j++) {
a = vlst[i][j];
if (a == find) vlst[i][j] = repl;
}
}
r.setValues(vlst);
对于模式1,由getRange("Sheet4!A:AB")
检索的值包括空行。 由此,搜索速度变慢。 因此,在此模式2中,使用getLastRow()
检索了数据范围“ A1:AB”。
var ss = SpreadsheetApp.getActiveSpreadsheet();
var s = ss.getSheetByName("Sheet4");
var r = s.getRange("A1:AB" + s.getLastRow());
var vlst = r.getValues();
var i, j, a, find, repl;
find = "abc";
repl = "xyz";
for (var i = 0; i < vlst.length; i++) {
for (var j = 0; j < vlst[i].length; j++) {
a = vlst[i][j];
if (a == find) vlst[i][j] = repl;
}
}
r.setValues(vlst);
如果我误解了您想要什么,请告诉我。 我想修改它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.