[英]How to Find & Replace Value in Google Apps Script?
我正在 Google 表格中构建一个简单的数据输入表单。 用户填写特定字段(在工作表 A 中),然后单击提交按钮。 然后将数据输入到另一个工作表(工作表 B)中。
我正在寻找一个脚本解决方案,它将从数据输入表单(表 A)中获取值,执行查找和替换(在脚本中),然后将替换的值放在表 B 中。一旦将数据输入到表中B,表 A 中的值将自动清零。
例子:
谷歌表格链接: https : //docs.google.com/spreadsheets/d/10c1EX27WbINQOjN0UyE778gl8LguKp7MRKwQdaw0mu4/edit?usp=sharing
脚本:
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet
var datasheet = ss.getSheetByName("Form Data"); //Data Sheet
//Input Values
var values = [[formSS.getRange("L5").getValue(),
formSS.getRange("D18").getValue(),
formSS.getRange("D21").getValue(),
formSS.getRange("R18").getValue(),
formSS.getRange("R21").getValue(),
formSS.getRange("AF18").getValue(),
formSS.getRange("AF21").getValue(),
formSS.getRange("D33").getValue(),
formSS.getRange("D36").getValue(),
formSS.getRange("R33").getValue(),
formSS.getRange("R36").getValue(),
formSS.getRange("AF33").getValue(),
formSS.getRange("AF36").getValue(),
formSS.getRange("D48").getValue(),
formSS.getRange("D51").getValue(),
formSS.getRange("R48").getValue(),
formSS.getRange("R51").getValue(),
formSS.getRange("AF48").getValue(),
formSS.getRange("AF51").getValue(),
formSS.getRange("D63").getValue(),
formSS.getRange("D66").getValue(),
formSS.getRange("R63").getValue(),
formSS.getRange("R66").getValue(),
formSS.getRange("AF63").getValue(),
formSS.getRange("AF66").getValue()]];
datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 25).setValues(values);
}
任何人都可以帮忙吗?
用户输入的值为 PASS。 在数据表单上输入的值为 1。
用户输入的值为 FAIL。 在数据表单上输入的值为 0。
由于您已经有了这些值,您可以使用以下三元运算符实现上述转换:
var f_values = values.map(val=>val=='Pass'?1:val=='Fail'?0:val);
后者将遍历values
阵列,它将每一个值变换到:1 if val=='Pass'
,0 if val=='Fail'
或保持如如果其它两种情况评估为假。
这就是你要找的:
function submitData() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var formSS = ss.getSheetByName("Form"); //Form Sheet
var datasheet = ss.getSheetByName("Form Data"); //Data Sheet
var values = [formSS.getRange("L5").getValue(),
formSS.getRange("D18").getValue(),
formSS.getRange("D21").getValue(),
formSS.getRange("R18").getValue(),
formSS.getRange("R21").getValue(),
formSS.getRange("AF18").getValue(),
formSS.getRange("AF21").getValue(),
formSS.getRange("D33").getValue(),
formSS.getRange("D36").getValue(),
formSS.getRange("R33").getValue(),
formSS.getRange("R36").getValue(),
formSS.getRange("AF33").getValue(),
formSS.getRange("AF36").getValue(),
formSS.getRange("D48").getValue(),
formSS.getRange("D51").getValue(),
formSS.getRange("R48").getValue(),
formSS.getRange("R51").getValue(),
formSS.getRange("AF48").getValue(),
formSS.getRange("AF51").getValue(),
formSS.getRange("D63").getValue(),
formSS.getRange("D66").getValue(),
formSS.getRange("R63").getValue(),
formSS.getRange("R66").getValue(),
formSS.getRange("AF63").getValue(),
formSS.getRange("AF66").getValue()];
var f_values = values.map(val=>val=='Pass'?1:val=='Fail'?0:val);
datasheet.getRange(datasheet.getLastRow()+1, 1, 1, 25).setValues([f_values]);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.