程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了尝试在 Google Apps 脚本中编写 IF/AND 语句大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决尝试在 Google Apps 脚本中编写 IF/AND 语句?

开发过程中遇到尝试在 Google Apps 脚本中编写 IF/AND 语句的问题如何解决?下面主要结合日常开发的经验,给出你关于尝试在 Google Apps 脚本中编写 IF/AND 语句的解决方法建议,希望对你解决尝试在 Google Apps 脚本中编写 IF/AND 语句有所启发或帮助;

我已经彻底搜索过,但找不到解决方案。 我正在尝试在 Google Apps 脚本中编写 IF/AND 语句。我将有 2-3 个条件,其值分别来自 2-3 列。这是我希望脚本执行的操作

如果 A 列是“abco”,B 列是“swift”,则 D 列中的“双栈”

如果 A 列是“safeco”,B 列是“dhl”,C 列是“Airway”,则 D 列中的“单堆”

A、B 和 C 列都有几个下拉选项,不同的组合会触发 D 列中的不同消息,例如“单个堆栈”。该脚本必须在 12 个不同的选项卡上工作,每个月 1 个。这是我尝试过的。感谢您对此的任何帮助。

 function onEdit(E) {
      var ss = SpreadsheetApp.getActiveSheet();
      var r = ss.getActiveCell();
      var celladdress ='D'+ r.getRowIndex() 

      var value = (typeof e.value == "object" ? e.range.getValue() : e.value);

 
    if (r.getcolumn() === 1 && value == "abco" && r.getcolumn()=== 2 && value == "swift" && ss.getname()=='January'){
   
ss.getRange(celladdress).SETVALue('double stack');
}}

解决方法

我要开始了。看看你现在能不能自己完成:

function onEdit(E) {
  const sh=e.range.getSheet();
  const v=sh.getRange(e.range.rowStart,1,3).getValues()[0];
  if(v[0]=='abco' && v[1]=='swift') sh.getRange(e.range.rowStart,4).SETVALue('double stack');
,

您当前代码中的问题是您只是使用 e.range.getValue()

检查修改后的单元格的值

您真正需要做的只是获取修改后的单元格的行索引,并在检查 A 到 C 列的值和设置 D 列的值时使用该行索引


可以参这个示例代码:

function onEdit(E){
  var ss = e.source;
  var sheet = ss.getActiveSheet();
  var row = e.range.getRow();
  var col = e.range.getcolumn();
  var validSheets = ["January","February","March"];
  var value = [];
  //check if modified cell is in column A to D and not the header row 1.
  //Modified sheet should be listed in the validSheets
  if(row > 1 && col <= 4 && validSheets.includes(sheet.getName())){
    
    //Get current row values from column A to C
    //Convert the 2-d array of values to 1-d array using flat()
    value = sheet.getRange(row,3).getDisplayValues().flat();
 
    if(value[0] == "abco" && value[1] == "swift"){
       sheet.getRange(row,4).SETVALue("double stack");
    }

    if(value[0] == "safeco" && value[1] == "DHL" && value[2] == "Airway"){
       sheet.getRange(row,4).SETVALue("single stack");
    }
  }

}

它有什么作用?

  1. 使用 e.source
  2. 获取活动电子表格
  3. 获取活动工作表和修改单元格的行索引和列索引(从一开始的索引)
  4. 定义您希望实现 onEdit() 过程的工作表名称列表。在此示例代码中,我在 validSheets
  5. 下定义了一个工作表列表
  6. 检查修改后的单元格是否在 A 到 D 列而不是第一行。使用 array.includes()
  7. 验证当前活动工作表名称是否列在 validSheets
  8. 使用 getRange(row,column,numRows,numcolumns) 和 getDisplayValues() 根据当前行索引获取 A、B 和 C 列的值。使用 flat() 将二维数组转换为一维数组。

我更喜欢使用 getDisplayValue() 而不是 getValue() 因为它会将单元格的显示值作为字符串返回

  1. 使用 getRange(row,column) 和 SETVALue(value) 比较每个列的值并为列 D 设置必要的值

输出:

尝试在 Google Apps 脚本中编写 IF/AND 语句

大佬总结

以上是大佬教程为你收集整理的尝试在 Google Apps 脚本中编写 IF/AND 语句全部内容,希望文章能够帮你解决尝试在 Google Apps 脚本中编写 IF/AND 语句所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。