如何根据单元格值将数据从一个单元格复制到另一个单元格? (Google Spreadsheets)

时间:2016-03-01 00:02:55

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

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

例如: SheetA有A1,A2,A3,A4等数据...... SheetB具有用户键入值的单元格(B1)。 运行脚本时,SheetA中的数据将从A列复制,并根据B1中的值复制到SheetB。 因此,如果用户输入" 5"进入B1并运行,A5中的数据将从SheetA复制到sheetB上的A1

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

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

我需要更换'("?")'是

谢谢!

2 个答案:

答案 0 :(得分:0)

使用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);

您可以通过方法链来实现此功能。我只是将每一个分开以获得更好的观点和理解。

答案 1 :(得分:0)

假设您定义了SheetA和SheetB并且copyTo范围是固定的(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标记搜索您的问题。