Javascript 创建一个google脚本,用于查找和替换电子表格每页相同单元格中的文本

Javascript 创建一个google脚本,用于查找和替换电子表格每页相同单元格中的文本,javascript,google-apps-script,script,Javascript,Google Apps Script,Script,我有两个变量需要在几百页的电子表格上更新。但我只需要在每一页的B1单元格中更改它,而不需要任何其他单元格。如果B1是苹果,我需要它说红苹果,如果B1是香蕉,我需要它说黄香蕉 function run() { runReplaceInSheet(); replaceInSheet(); } function runReplaceInSheet() { var spreadsheet = SpreadsheetApp.openById("ID"); var sheets =

我有两个变量需要在几百页的电子表格上更新。但我只需要在每一页的B1单元格中更改它,而不需要任何其他单元格。如果B1是苹果,我需要它说红苹果,如果B1是香蕉,我需要它说黄香蕉

function run() {
runReplaceInSheet();
replaceInSheet();
}

function runReplaceInSheet() {

var spreadsheet = SpreadsheetApp.openById("ID"); 
var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
for ( var i = 0 ; i<sheets.length ; i++) {
var sheet = sheets[i];
// Fetch the range of cells 
var dataRange = sheet.getRange(startRow, 1, numRows, 1) // Numbers of rows to process
// Fetch values for each row in the Range
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var values = sheet.getDataRange().getValues();  

// Replace Names

replaceInSheet(values, 'Apple', 'Red Apple');

//write the updated values to the sheet, again less call;less overhead
sheet.getDataRange().setValues(values);        

}
}

function replaceInSheet(values, to_replace, replace_with) {

//loop over the rows in the array
for (var row in values) {

//use Array.map to execute a replace call on each of the cells in the row.
var replaced_values = values[row].map(function(original_value) {
    return original_value.toString().replace(to_replace, replace_with);
});

//replace the original row values with the replaced values
values[row] = replaced_values;


}
}
函数运行(){
runReplaceInSheet();
replaceInSheet();
}
函数runReplaceInSheet(){
var电子表格=SpreadsheetApp.openById(“ID”);
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();

对于(var i=0;i,对于电子表格中的每个工作表,问题中的代码获取所有值,但您只需要替换单个单元格的值

此外,replace函数在所有单元格中执行replace操作

获取B1的值而不是

var values = sheet.getDataRange().getValues();  
sheet.getDataRange().setValues(values); 
使用

然后,您可以使用比较值来查看是否需要替换,如果需要,则替换为

var values = sheet.getDataRange().getValues();  
sheet.getDataRange().setValues(values); 
你可以用

sheet.getRange('B1').setValue(value); 

欢迎使用。请显示您尝试的内容。我复制了在Stackoverflow上找到的一些脚本,并尝试对其进行修改。但该脚本不起作用。我收到以下错误。很抱歉,发生了服务器错误。请稍等,然后重试。运行replaceinsheet@Find and Replace.gs:8运行@Find and Replace.gs:2@ToddCash正如错误所说,请稍等,然后再试一次再一次。谢谢你的帮助。我会等着看它是否正确。仍然不起作用。还有其他建议吗?@ToddCash发布一个新问题,包括新代码。