我正在尝试将数据从工作表(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"));
我需要更换'("?")'是
谢谢!
答案 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
标记搜索您的问题。