我需要复制某一列的最后一行中的值,我看到了类似这样的示例... Stackoverflow,但是它们没有为我的脚本提供服务。我的问题是,在A
列中有五个值,在B
和C
列中只有一个这样的值...
A B C
1 1 1
1 - -
1 - -
1 - -
1 - -
我想像这样在B
和C
列中插入值...
A B C
1 1 1
1 2 2
1 2 2
1 - -
1 - -
但我的脚本的问题在于它会像这样插入它们...
A B C
1 1 1
1 - -
1 - -
1 - -
1 - -
- 2 2
//This part its not important
function last(){
var ss = SpreadsheetApp.openById("ID");
var ssh = ss.getSheetByName("Name")
var Range = ssh.getRange("B1:C");
var getVal = Range.getValues();
//This part its the important
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssh = ss.getSheetByName("Sheet 1");
var lastRow = ssh.getLastRow() + 1;
var ssRange = ssh.getRange(lastRow , 2, getVal.length, getVal[0].length).setValues(getVal);
}
我需要帮助,以便将值插入正确的行中。
编辑
这是我拥有的脚本...
function last(){
var ss = SpreadsheetApp.openById("ID");
var name = ss.getSheetByName("NAMES");
var lastRow = name.getLastRow();
var range = name.getRange("A"+(lastRow)+":D"+(lastRow));
var datas = range.getValues();
var actSs = SpreadsheetApp.getActiveSpreadsheet();
var sheetOne = actSs.getSheetByName("1");
var ltRo = sheetOne.getLastRow();
var startRow = null;
var i = 0;
while(i < datas.length)
{
if(datas[i][0]){
startRow = i + 2;
i++;
}
if (!i){
startRow = 1;
}
var ssRange = sheetOne.getRange(startRow, 2, datas.length,
datas[0].length).setValues(datas);
}
}
答案 0 :(得分:1)
这是问题所在
var lastRow = ssh.getLastRow() + 1;
在电子表格中找到包含数据的最后一行,您的情况为 6 。
使用getValues()
获取数据数组,然后解析以找到在 2 列中找不到数据的索引。
然后做:
var ssRange = ssh.getRange(foundIndex , 2, getVal.length, getVal[0].length).setValues(getVal);
示例:
function last(){
var ss = SpreadsheetApp.openById("ID");
var name = ss.getSheetByName("Name")
var range = name.getRange("B1:C");
var datas = range.getValues();
var actSs = SpreadsheetApp.getActiveSpreadsheet();
var sheetOne = actSs.getSheetByName("Sheet 1");
var startRow = null;
var i = 0;
while(i < datas.length)
{
if(datas[i][0])
startRow = i + 2;
i++;
}
if (!i)
startRow = 1;
var ssRange = sheetOne.getRange(startRow , 2, datas.length, datas[0].length).setValues(datas);
答案 1 :(得分:1)
我以前在this answer中使用的另一种方法:
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ssh = ss.getSheetByName("Sheet 1");
var Avals = ssh.getRange("B1:B").getValues();
var Alast = Avals.filter(String).length;
var ssRange = ssh.getRange(Alast +1 , 2, getVal.length, getVal[0].length).setValues(getVal);