从公式中获取值时脚本不起作用

时间:2016-12-07 04:39:14

标签: javascript google-apps-script

我找到了这个脚本(下面),只需在数字0中键入G列就行了,但是当G列的结果来自减去E列和F列的值时它不起作用。当值变为0时,它保留在工作表中"默认"。任何帮助,将不胜感激。我已经搜索过,并且在应用于公式结果时没有发现它是如何工作的。谢谢!

function onEdit() {
  // moves a row from a sheet to another when a magic value is entered in a column
  // adjust the following variables to fit your needs
  // see https://productforums.google.com/d/topic/docs/ehoCZjFPBao/discussion

  var sheetNameToWatch = "default";

  var columnNumberToWatch = 7; // column A = 1, B = 2, etc.
  var valueToWatch = 0;
  var sheetNameToMoveTheRowTo = "toMoveTo";

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();

  if (sheet.getName() == sheetNameToWatch && range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {
    var targetSheet = ss.getSheetByName(sheetNameToMoveTheRowTo);
    var targetRange = targetSheet.getRange(targetSheet.getLastRow() + 1, 1);
    sheet.getRange(range.getRow(), 1, 1, sheet.getLastColumn()).moveTo(targetRange);
    sheet.deleteRow(range.getRow());
  }
}

1 个答案:

答案 0 :(得分:0)

脚本按预期工作。我用脚本创建了一个测试电子表格,并进行了以下测试:

  1. 在A栏中输入随机数 - 正如所料,没有发生任何事情
  2. Column A中输入0 - 正如所料,没有任何事情发生。
  3. Column G(7)中输入随机数 - 没有发生任何事情
  4. 0中输入Column G - 该行已移至另一张
  5. 5columns EF中输入=E3-F3,等于0(按此顺序) - 行已移至另一张
  6. 5column E4以及column F中的column G中输入=E3-F3我写了1公式F4 }。之后,我将5更改为值0并将公式重新计算为0 < n < 1 - 正如预期的那样,行已移动。
  7. 请确保公式实际返回值0.可能是您的单元格被格式化为将0.1写为0并且公式返回一个不会被移动的数字Math.floor(),因为它必须完全是0为了使这个工作。如果您希望移动大于0但小于1的值,请对读取值引入G

    在测试方案6中,我们必须注意,该脚本不会考虑对7以外的任何列(列号var range = sheet.getActiveCell();)所做的更改,因为您只是在观看0所以如果您更改了除了if range.getColumn() == columnNumberToWatch

    以下SMSVerificationApplicationKe语句部分{"Host":"web.yourhost.test”,”Connection":"Keep-Alive","Accept-Encoding":"gzip","CF-IPCountry":"GB","X-Forwarded-For":"213.242.88.220","CF-RAY":"30cff02a4c2416d0-ARN","Content-Length":"816","X-Forwarded-Proto":"https","CF-Visitor":"{\"scheme\":\"https\"}","x-timestamp":"2016-12-06T13:03:28.2621119Z","Authorization":"application 737481a8-d133-4c71-9e9b-3a80656bbefd:p9rRHZZFutjmYOYDgBzWAYos6Mt4EXpUroUawSjOeBQ=","Content-Type":"application\/json; charset=utf-8","Cookie":"__cfduid=d5eaa6f6e99e7605ed74e0a40e50e50271481020280","CF-Connecting-IP":"213.242.88.220"} 之后的列之外的任何内容,它将无法执行任何操作