【问题标题】:conditional formatting with checkboxes带复选框的条件格式
【发布时间】:2021-08-13 23:31:29
【问题描述】:

有没有办法格式化一个复选框,以便当它被“选中”时,它旁边的列中的数据将被移动到另一列?

【问题讨论】:

  • 如果您希望在物理上移动数据,您将需要一个脚本
  • 底部?定义底部,要准确地说,有很多事情要说明。转移柱的底部?当前列的底部?显示样本数据和结果,以便于重现且不做任何假设。
  • @EmmaBourdeau 这完全是一个新问题吗?解释详细期望的行为是什么。 cmets 不适用于扩展讨论或需要不同答案的新问题。
  • 请在您的帖子中显示可视化。添加前后的图像,以便每个人都可以轻松理解。 @EmmaBourdeau
  • 问题帖应包含您要解决的问题。 Edit 尽可能描述您的问题的问题。请注意,过多的编辑将被视为移动球门柱,这不会受到好评。就目前而言,我认为该问题缺乏关键细节,正如您最后的评论以及该问题的当前回答者 both 都认为您想要移动单个单元格这一事实所证明的那样。 (为了记录,我也这么认为。)更多信息,请阅读How to Ask

标签: google-apps-script google-sheets formatting conditional-statements


【解决方案1】:
function onEdit(e) {
  const sh = e.range.getSheet();
  if (sh.getName() == 'Sheet1' && e.range.columnStart == 1 && e.value == 'TRUE') {
    e.range.offset(0, 5).setValue(e.range.offset(0, 1).getValue());
    e.range.offset(0, 1).setValue('');
    e.range.setValue('FALSE');
  }
}  

【讨论】:

  • 我错过了“移动”一词,只是复制了数据。感谢您在@Cooper 的回答中指出这一点。
【解决方案2】:

正如 player0 所提到的,要使其工作,您需要 Google Apps 脚本的 Spreadsheet ServiceEvent Objects 的帮助。

下面的代码应该适用于下面的示例数据。

样本数据:

代码:

function onEdit(e) {
  var sheet = e.source.getActiveSheet();
  var range = e.range;
  var column = range.getColumn();
  // if edited data is in Sheet1 Column A and having value TRUE (checkbox ticked) 
  if (sheet.getName() == "Sheet1" && column == 1 && e.value == "TRUE") {
    // get 1 column to the right of checkbox and assign to dataValue
    var dataRange = range.offset(0, 1);
    var dataValue = dataRange.getValue();
    // get 3 columns to the right of dataValue and assign to transferToRange
    var transferToRange = dataRange.offset(0, 3);
    // set dataValue as value to transferToRange
    transferToRange.setValue(dataValue);
    // remove data from dataRange after
    dataRange.setValue("");
  }
}

输出:

注意:

  • 以上代码只是您可以通过 Apps 脚本创建的众多可能解决方案之一。
  • 阅读Apps Script了解更多信息。

参考资料:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-22
    相关资源
    最近更新 更多