【问题标题】:G-Sheets: Populate multiple cells from another sheet based on dropdown (multiple rows and columns)G-Sheets:根据下拉列表填充另一个工作表中的多个单元格(多行和多列)
【发布时间】:2017-04-19 22:42:51
【问题描述】:

我正在尝试根据下拉列表将多个单元格中的数据复制或填充(不确定术语是否正确)到另一个工作表上相同大小的多个单元格。

https://docs.google.com/spreadsheets/d/1ELxYcMG_kvzt6KLZoY8WyTBb3evv4dOmpYWvTlzvEVM/edit?usp=sharing

因此,在此电子表格中,我尝试在“结果”中选择 A2 和 A8,并根据“数据”中的相关行/列填充 B2:I6 和 B8:I12

这可能吗?

【问题讨论】:

  • 嗨@Matt 你有机会看到我的回答吗,有帮助吗?
  • @oserk 我试过了。看起来它适用于第一个下拉菜单。但是2号没有反应。目标是在 1 个电子表格上设置多个下拉列表。所以我会在 A 列中说 6 个下拉菜单,然后在 N 中说 6 个,在 Z 中说 6 个。
  • 我为您制作了示例,让您了解我的代码是如何工作的,特别是在if( range.getValue() == "AAA" ){.. => 这就是我们定义数据流向何处的地方,您必须根据您的需要扩展if-else做自定义代码,但正如您所见,这是可能的。如果您愿意,请将此标记为答案,如果您需要更具体的详细信息,请提出新问题
  • @oserk 我已经开始工作了——我现在明白了。假设我在 A 列中有 6 个下拉菜单。对于每个下拉菜单,我有 20 个不同的选项。然后我在 F 和 M 列的 6 个下拉菜单中有相同的选项。我是否必须有效地编写脚本 6(下拉菜单)x 20(选项)x 3(列)次?

标签: google-sheets


【解决方案1】:

我已经为你做了例子,你需要实现如何引用触发单元格并获取它的引用行索引来复制到该行索引,而不是像我一样硬编码它..

这是相关代码:

function onEdit(e){
  // Set a comment on the edited cell to indicate when it was changed.
  var range = e.range;  

  if(  range.getA1Notation() == "A2" ){
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheets()[1];
    var orgsheet = ss.getSheets()[0];
    if( range.getValue() == "AAA" ){
      sheet.getRange("B2:H6").copyTo(orgsheet.getRange("B2"), {contentsOnly:true});
    } else if ( range.getValue() == "BBB" ) {
      sheet.getRange("B8:H12").copyTo(orgsheet.getRange("B2"), {contentsOnly:true});
    }
  }

}

另外,我认为您需要将我的工作表复制到您的驱动器才能在没有权限错误的情况下运行脚本,

这是我工作表的链接:https://docs.google.com/spreadsheets/d/1YVuQMBLEqgwGMPdjlV9cKRCML0vqi3UkMsZ66DR5Fls/edit#gid=0

干杯,k

【讨论】:

    猜你喜欢
    • 2017-06-13
    • 1970-01-01
    • 2017-10-19
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多