Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 左侧的传输无效。(第1行“测试”文件)_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 左侧的传输无效。(第1行“测试”文件)

Google 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

我正在编写一个脚本,如果在单元格L1、L2和L3中写入的值为“Ok”,则脚本会将电子表格保存为PDF。如果这三个单元格中的任何一个都写入了“Ok”以外的内容,则脚本应停止,而不应继续并保存PDF

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”,则停止脚本的某些代码。你能帮我一下吗?这就是
小队
电子表格的问题所在吗?