簡體   English   中英

更改查找和替換Google表格腳本

[英]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的值。 如果我的理解是正確的,我想提出兩種模式。 我認為您有幾種解決方案。 因此,請將此視為其中之一。

模式1

該修改是簡單的修改。 它將檢索值的范圍修改為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);

模式2

對於模式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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM