【问题标题】:I want to take multiple cells, and what ever cell is not FALSE I want that cell to be extracted and moved to another column in a different sheet我想获取多个单元格,并且任何单元格都不是 FALSE 我希望提取该单元格并将其移动到不同工作表中的另一列
【发布时间】:2019-09-11 13:47:00
【问题描述】:

我正在制作一个行动表单。有些动作可以用方框打勾。如果没有勾选这些框,它们会留下值为 FALSE 的单元格。如果单元格不读取 FALSE,我希望将任何单元格(B6、B7、E7)复制到不同的单元格。

我正在使用 if 语句在 google sheet 脚本编辑器上尝试此操作。

var submit_type_range = submit_sheet.getRange('B6:B7');
  var types =submit_type_range.getValues();

  if (types != 'FALSE')
   var type = types 
   return type 



  var type_submitted = log_sheet.getRange(lastRow_log+1,3)
  type_submitted.setValue(type)

我知道这行不通,但我希望至少键入以提取所有不显示 FALSE 的单元格。

【问题讨论】:

  • types 是一个二维数组。 submit_sheet 未定义。 log_sheet 未定义。 lastRow_log 未定义。在编写自己的脚本之前,您应该尝试一些教程。

标签: google-apps-script google-sheets google-apps-script-editor


【解决方案1】:

为了完成你想做的事情,我们不得不重写几乎全部的功能;如果以下代码不符合您的期望,我们深表歉意。

代码将首先读取单元格 B6、B7 和 E7 的值。由于.getValues() A1 表示法仅适用于连续单元格,我们将把 E7 数据连接到其他单元格。

之后,我们将迭代每个单元格并检查其内容是否为 false。我们把它写成小写,因为它是一个reserved keyword,所以每个 FALSE 都会在我们的读取数组中转换为 false

最后,我们将这些单元格的数据写入最后一个空行。由于我们不知道您要将数据放在最后一个空行的哪一列,因此我们选择将与原始读数的索引匹配的列中的每个单元格写入(即 B6 ? A 列、B7 ? B 列和 E7 ? C 列)。

作为额外的,我们创建了最后一个循环,删除types 数组中 false 的元素。由于您的最后一句话,我们添加了此内容。

function falseRemover() {
  var spreadsheet = SpreadsheetApp.openById('{SPREADSHEET ID}').getSheetByName(
    'Sheet1');
  var types = spreadsheet.getRange('B6:B7').getValues().concat(spreadsheet
    .getRange('E7').getValues());
  var lastRow = spreadsheet.getLastRow() + 1;

  var columnIterator = 0;
  for (var cell in types) {
    columnIterator++;
    if (types[cell] != 'false') {
      spreadsheet.getRange(lastRow, columnIterator).setValue(types[cell]);
    }
  }

  for (var cell in types) {
    if (types[cell] == 'false') {
      types[cell].pop();
    }
  }
}

我们希望此代码示例对您有用,但如果您需要,请随时寻求更多帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2020-10-26
    • 1970-01-01
    • 2016-10-31
    相关资源
    最近更新 更多