【问题标题】:How do I copy data from one cell to another based on a cell value? (Google Spreadsheets)如何根据单元格值将数据从一个单元格复制到另一个单元格? (谷歌电子表格)
【发布时间】:2016-03-01 16:47:25
【问题描述】:

我正在尝试将数据从工作表 (SheetA) 复制到另一个工作表 (SheetB) 但是,我需要将要复制的单元格行(从工作表 A)基于另一个单元格。

例如: SheetA 有关于 A1、A2、A3、A4 等的数据... SheetB 有一个单元格 (B1),用户可以在其中键入一个值。 当脚本运行时,SheetA 中的数据将从 A 列和基于 B1 中的值的行复制到 SheetB。 因此,如果用户在 B1 中键入“5”并运行,则 A5 中的数据将从 SheetA 复制到 sheetB 上的 A1

这是我目前拥有的一个脚本,如何正确修改它以完成代码?

    //Moves data from SheetA -> SheetB;
   SheetA.getRange("?").copyTo(SheetB.getRange("A1"));

我必须用什么来替换 '("?")' 的位置?

谢谢!

【问题讨论】:

标签: google-apps-script google-sheets google-spreadsheet-api


【解决方案1】:

改用 setValue() 会更容易实现和理解。

尝试如下实现:

从 SheetB 中获取输入的值

var inputValue = SheetB.getRange(SheetBRow, SheetBColumn).getValue();

-

使用 inputValue 作为 getRange() 的行参数来获取值 来自 SheetA 的单元格

var SheetACellValue = SheetA.getRange(inputValue, SheetAColumn).getValue();

-

使用 SheetACellValue 中的值设置 SheetB 上单元格的值

Cell SheetBCell = SheetB.getRange(SheetBRow,SheetBColumn);
SheetBCell.setValue(SheetACellValue);

您可以通过方法链接来实现这一点。我只是为了更好地查看和理解而将它们分开。

【讨论】:

    【解决方案2】:

    假设您定义了 SheetA 和 SheetB 并且 copyTo Range 是固定的 (A1) 这是您的代码(遵循您尝试的语法):

    SheetA.getRange('A'+SheetB.getRange('B1').getValue).copyTo(SheetB.getRange('A1'));
    

    或(使用 setValue 而不是 copyTo,因为您正在处理一个特定的单元格):

    SheetB.getRange('B1').setValue(SheetA.getRange('A'+SheetB.getRange('B1').getValue));
    

    这是使用 Apps 脚本和表格时的基本知识。我建议您阅读SpreadsheetApp Documentation。 此外,这是许多类似问题的重复。下次使用google-apps-script 标签搜索您的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-06
      • 2011-11-21
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多