Javascript Google工作表脚本-将行值复制到上次使用的行
基本上,我需要帮助将A2:AC2范围内的第2行内容复制到最后使用的行(如果复制粘贴整个第2行,则不是问题) 我已经有了一个脚本,可以将行追加到最后一个未使用的行,我希望不必手动编辑该脚本,以防我需要更新这些值 找到一个脚本以获取最后使用的行,但它返回行号Javascript Google工作表脚本-将行值复制到上次使用的行,javascript,arrays,google-apps-script,google-sheets,Javascript,Arrays,Google Apps Script,Google Sheets,基本上,我需要帮助将A2:AC2范围内的第2行内容复制到最后使用的行(如果复制粘贴整个第2行,则不是问题) 我已经有了一个脚本,可以将行追加到最后一个未使用的行,我希望不必手动编辑该脚本,以防我需要更新这些值 找到一个脚本以获取最后使用的行,但它返回行号 function getLRI() { var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Fund'); var lr = getLastRowInde
function getLRI() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Fund');
var lr = getLastRowIndex(ss,'A1:AC');
Logger.log (lr);
}
function getLastRowIndex(sheet,rangeString) {
var rng = sheet.getRange(rangeString).getValues();
var lrIndex;
for ( var i = rng.length-1;i>=0;i--){
lrIndex = i;
if(!rng[i].every(function(c){ return c == ""; })){
break;
}
}
return lrIndex + 1;
}
Logger.log(lr)
的输出
因此,我得到了正确的行号,但没有设法弄清楚如何使.getRange()
和.setValues
在本例中起作用说明:
解决方案比你想象的要简单得多
- 您不需要创建自定义函数来计算工作表中包含内容的最后一行,因为已经有一个内置函数来完成Google提供的这项工作,这是一个很好的例子
- 以下脚本将使用获取范围
中的数据,并使用内容设置最后一行之后的值A2:AC2
解决方案: 说明: 解决方案比你想象的要简单得多
- 您不需要创建自定义函数来计算工作表中包含内容的最后一行,因为已经有一个内置函数来完成Google提供的这项工作,这是一个很好的例子
- 以下脚本将使用获取范围
中的数据,并使用内容设置最后一行之后的值A2:AC2
解决方案:
谢谢,比我尝试的要简单,在删除sh.getRange(sh.getLastRow()中的+1之后,我想编辑最后使用的行+1Glad它解决了您的问题。您可以通过单击答案左侧的勾选按钮将答案标记为已接受吗?感谢@Brunocavalhoi知道我发布的脚本会进行额外检查,检查行是否为空,如果单元格中包含公式而非值,则跳过,但最终结果是行编号,是否仍可以在中使用?我要求学习,无论如何非常感谢,我想你可以做到:
const data=sh.getRange(2,1,1,29).getValues();//A2:AC2 sh.getRange(lr,1,data.length,data[0].length).setValues(data)
非常感谢,通过调整和一些实验,我通过你的回答和谷歌了解了更多关于脚本和java的知识,比我在这里要求的更多,请确保你帮助了很多PPL,比我尝试的要简单,因为我想在删除sh.getRange(sh.getLastRow()中的+1后编辑最后使用的行+1Glad它解决了您的问题。您可以通过单击答案左侧的勾选按钮将答案标记为已接受吗?感谢@Brunocavalhoi知道我发布的脚本会进行额外检查,检查行是否为空,如果单元格中包含公式而非值,则跳过,但最终结果是行编号,是否仍可以在中使用?我要求学习,无论如何非常感谢,我想你可以做到:const data=sh.getRange(2,1,1,29).getValues();//A2:AC2 sh.getRange(lr,1,data.length,data[0].length).setValues(data)
非常感谢,通过调整广告和一些实验,我通过你的回答和谷歌了解了更多关于脚本和java的知识。比我在这里要求的更多,请继续确保你帮助了很多ppl
[20-10-30 16:35:33:460 BRT] 47.0
function myFunction() {
const ss = SpreadsheetApp.getActive();
const sh = ss.getSheetByName('Fund');
const data = sh.getRange(2,1,1,29).getValues(); // A2:AC2
sh.getRange(sh.getLastRow()+1,1,data.length,data[0].length).setValues(data);
}