Google apps script 左侧的传输无效。(第1行“测试”文件)
我正在编写一个脚本,如果在单元格L1、L2和L3中写入的值为“Ok”,则脚本会将电子表格保存为PDF。如果这三个单元格中的任何一个都写入了“Ok”以外的内容,则脚本应停止,而不应继续并保存PDFGoogle apps script 左侧的传输无效。(第1行“测试”文件),google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在编写一个脚本,如果在单元格L1、L2和L3中写入的值为“Ok”,则脚本会将电子表格保存为PDF。如果这三个单元格中的任何一个都写入了“Ok”以外的内容,则脚本应停止,而不应继续并保存PDF function Test() { var spreadsheet = SpreadsheetApp.getActive(); spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Squads'), true); spreadshee
function Test() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Squads'), true);
spreadsheet.getRange('Squads!W17').activate();
if ('Gerais!L1'="Ok"){
spreadsheet.getRange('Gerais!M1').activate();
spreadsheet.getCurrentCell().setValue('Aprovado');
}
if ('Gerais!L2'="Ok"){
spreadsheet.getRange('Gerais!M2').activate();
spreadsheet.getCurrentCell().setValue('Aprovado');
}
if ('Gerais!L3'="Ok"){
spreadsheet.getRange('Gerais!M3').activate();
spreadsheet.getCurrentCell().setValue('Aprovado');
}
}
当我尝试保存到此脚本时,左侧会显示消息:Invalid transfer。(第1行,“测试”文件)
我想要的是,如果单元格L1、L2和L3中拼写为“Ok”,脚本将进入下一步并将电子表格保存为PDF格式
为了不扩大问题的范围,我在这里没有包含PDF脚本。但是它显然低于IF的值。如果要检查单元格的值,需要调用getRange()和getValue()或getValues() 例如:
var data = spreadsheet.getSheetByName('Gerais').getRange('L1:L3').getValues();
if (data[0][0] == 'OK') { // data[0][0] is L1
// do something fun
}
if (data[1][0] == 'OK') { // data[1][0] is L2
// do something fun
}
// etc.
你错了一件事: 例如,
if('Gerais!L1'=“Ok”)
是一个赋值而不是比较。它应该写成if(Gerais!L1'==“Ok”)
此外,当使用宏工具时,它往往会使用大量的激活,一般来说,它们在脚本中不是必需的,只会占用额外的时间和空间。除非你觉得它们是绝对必要的,否则试着把它们去掉
至于代码的其余部分,请尝试以下操作:
getValues()和getValue()在这里不会有太大的区别,但在循环命令中,它会有很大的区别
function Test() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Gerais');
var rg=sh.getRange("L1:L3");
var vA=rg.getValues();
if (vA[0][0]=="Ok"){
sh.getRange('M1').setValue('Aprovado');
}
if (vA[1][0]=="Ok"){
sh.getRange('M2').setValue('Aprovado');
}
if (vA[2][0]=="Ok"){
sh.getRange('M3').setValue('Aprovado');
}
}
当您将来改进编码时,将数据放入易于使用getValues()检索的行或列中的价值将变得更加有用,您将发现这是访问数据的非常有用的方法
对补充问题的答复:
if(vA[][0]=="Ok" && vA[1][0]=="Ok" && vA[2][0]=="Ok") {
//continue to pdf
}else{
//take another path
}
非常感谢。现在是最后一个问题,我的想法是,如果L1、L2或L3的值不是“Ok”,则脚本不应继续并创建保存在PDF中的电子表格。。。我怎么能这样做?例如,给出一个停止脚本继续的错误可能是一个选项。或者如果任何单元格未拼写为“Ok”,则停止脚本的某些代码。你能帮我一下吗?这就是
小队
电子表格的问题所在吗?