当前位置: 首页 > 知识库问答 >
问题:

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

宗政坚白
2023-03-14

我正在写一个脚本,如果在单元格L1,L2和L3中写入的值是“好的”,那么脚本将电子表格保存到PDF,如果这三个单元格中的任何一个被写入除“好的”以外的任何内容,脚本应该停止,不应该继续并保存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拼写为“好的”,脚本将进入下一步,并将电子表格保存在PDF中。

为了不扩大问题的范围,我在这里没有包含PDF脚本。但它显然低于IF的

共有2个答案

狄令
2023-03-14

如果要检查单元格的值,需要调用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.
谢夜洛
2023-03-14

你错了一件事:

例如if('Gerais!L1'="Ok")是赋值而不是比较。应该写成if(Gerais!L1'=="Ok")

此外,当使用宏工具时,它倾向于使用大量的激活,一般来说,它们在脚本中是不必要的,只是占用了额外的时间和空间。试着移除它们,除非你觉得它们是绝对必要的...

至于其余的代码试试这个:

getValue()和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');
  }
}

当您在将来改进编码时,将数据放在易于使用getValue()检索的行或列中的价值将变得更加有用,您将发现这是访问数据的一种非常有用的方式。

最佳实践

补充问题的答复:

if(vA[][0]=="Ok" && vA[1][0]=="Ok" && vA[2][0]=="Ok") {
  //continue to pdf
}else{
  //take another path
}
 类似资料:
  • (图像来自我正在处理的一个小型备份应用程序)。如您所见,上面最后一个,“取消”按钮在右侧被切断。这种行为显然是不可取的,因为文本中更相关的部分被切断了。 来源 到目前为止,我已经尝试将标签内文本的对齐方式更改为,将组件方向更改为,设置,但都无济于事: 我也尝试过使用HTML: 虽然它在我的浏览器中的工作方式是正常的,但swing似乎并不支持足够的样式属性来支持这种行为。 编写一个自己的实现并不是太

  • 在nodejs中导入@google-cloud/storage时出错, 当我评论这行的时候,一切都很好。下面是我得到的错误: /home/trd/trd/new-rapi/copy/676cb539092d21127ded33478d1073ab6886fc33/node_modules/pify/index.js:3 const processFn=(fn,opts)=^^^^^^^^^^ Re

  • 侧栏是和菜单栏一样,和用户直接交互并呈现用户操作结果和数据的地方,并且包含了很多菜单栏的快捷操作功能。整体上分为场景数据和搜索两部分。 场景数据 场景数据的三维场景包括我的地标、图层和地形3个部分。场景数据以树状结构向用户呈现,每个结构都带一个复选框,可以用于控制数据的显示和隐藏。子节点(具体的元素),或者图层,可以通过双击快速定位(根节点双击是展开和合并)。 【我的地标】:用户自己添加的点、线、

  • 侧栏是和菜单栏一样,和用户直接交互并呈现用户操作结果和数据的地方,并且包含了很多菜单栏的快捷操作功能。整体上分为场景数据和搜索两部分。 场景数据 场景数据的三维场景包括我的地标、图层和地形3个部分。场景数据以树状结构向用户呈现,每个结构都带一个复选框,可以用于控制数据的显示和隐藏。子节点(具体的元素),或者图层,可以通过双击快速定位(根节点双击是展开和合并)。 【我的地标】:用户自己添加的点、线、

  • 我想使用以下参数显示所有未应答和未应答的检查表(应答检查表位于ResponseCheckLists表中):idequipement和idMission。 运行此查询后,我显示以下错误消息: 编辑1: 编辑错误1; 原因:java。lang.IllegalStateException:节点:org没有数据类型。冬眠hql。内部的阿斯特。树IdentNode-[IDENT]IdentNode:'che

  • 本文向大家介绍jq实现左侧显示图片右侧文字滑动切换效果,包括了jq实现左侧显示图片右侧文字滑动切换效果的使用技巧和注意事项,需要的朋友参考一下 分享一款jQuery左侧图片右侧文字滑动切换代码。这是一款基于jQuery实现的列表图片控制图片滑动切换代码。效果图如下: 下面给大家分享下基于jq实现左侧显示图片右侧文字滑动切换效果,用div+css布置表单借用jq实现特效,具体不多说了,请看下面代码。