移动范围的脚本不显示错误但不执行 [英] Script to Move Range Showing No Error but Not Executing

查看:58
本文介绍了移动范围的脚本不显示错误但不执行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

通过反复试验学习脚本.请原谅这个问题中可能的无知.我希望脚本将活动工作表中的特定范围(而不是整个行)移动到活动工作表中另一个范围的上方.我希望此操作仅在H列中的文本为"C"时进行编辑.到目前为止,我运行的脚本没有错误,但不会影响任何更改.另外,我希望不仅在第4行而且在第4-18行都发生相同的事情.我只是要复制成功的行多次并为每个行更新范围,但是我确定有更好的方法吗?

Learning scripts by trial and error. Please forgive probable ignorance in the question. I want a script to move a specific range (but not the whole row) in the active sheet to be positioned above another range in the active sheet. I want this move to take place upon edit and only when the text in column H is "C". The script I have so far runs with no errors but does not affect any change. Additionally, I would like this same thing to happen not only for row 4 but for rows 4-18. I was simply going to copy successful lines multiple times and update range for each, but I am sure there is a better way?

function onEdit(event) {

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

  var rangetoWatch = ("F4:I4");
  var columnNumberToWatch = 8;
  var valueToWatch = "C";

  if (sheet.getName() == sheet && sheet.getRange() == range.getColumn() == columnNumberToWatch && rangetoWatch.getValue() == valueToWatch) {

   sheet.getRange("F20:I").moveTo(sheet.getRange("F21"));
   sheet.getRange("F4:I4").moveTo(sheet.getRange("F20:I20"));

 }

}

推荐答案

以防将来有人偶然发现此线程...我终于弄清楚了我要完成的工作.下面是一个示例脚本.

in case anyone stumbles across this thread in the future... i finally figured out what I was trying to accomplish. a sample script is below.

  function movedown(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = sheet.getActiveCell();
  var row = range.getRow();
  var mini = sheet.getRange(row, 1, 1, 3);

  var columnNumberToWatch = 3;
  var valueToWatch = "C";

  if (range.getColumn() == columnNumberToWatch && range.getValue() == valueToWatch) {

  sheet.getRange("A15:C").moveTo(sheet.getRange("A16"));
  sheet.getRange(row, 1, 1, 3).copyTo(sheet.getRange("A15:C15"));
  sheet.getRange(row, 1, 1, 3).clear({contentsOnly:true});

  }
  }

这篇关于移动范围的脚本不显示错误但不执行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆