我正在尝试将数据从一个工作表(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"));
我必须用什么替换'("?")‘是?
谢谢!
发布于 2016-03-01 08:43:01
改用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);
你可以通过方法链接来实现这一点。我只是为了更好地观察和理解而将它们分开。
发布于 2016-03-01 08:47:25
假设您定义了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));
这是使用应用程序脚本和工作表时的基本知识。我建议你在SpreadsheetApp Documentation上读一读。此外,这是许多类似问题的重复。下次使用google-apps-script
标签搜索您的问题。
https://stackoverflow.com/questions/35712261
复制相似问题