我要在电子表格中添加一列,将当前的最后一个(公式和所有)复制到新的最后一列:
function addCol(ss,shName) {
var sh = ss.getSheetByName(shName), lRow = sh.getLastRow();
var lCol = sh.getLastColumn(), range = sh.getRange(1,lCol,lRow,lCol);
sh.insertColumnsAfter(lCol,1);
range.copyTo(sh.getRange(1, lCol+1, lRow, lCol+1), {contentsOnly:false});
return sh;
}
调用该函数可在电子表格中添加两列。该代码仍然有效(在当前最后一个活动列之后设置一个新列...,但之后还会添加一个空白列),但是试图将列数保持在最小,这会使请求数增加两倍
...我有一个“镜像”功能,该功能在电子表格的底部插入一行,并且仅在请求时插入一行。因此,我猜测这是Google无缘无故添加列的某种正常行为。
有什么想法为什么我每次要创建2列?
答案 0 :(得分:0)
要将上一栏复制到新的上一栏,请尝试以下操作-
function addCol(ss,shName) {
var sh = ss.getSheetByName(shName), lRow = sh.getLastRow();
var lCol = sh.getLastColumn(), range = sh.getRange(1,lCol,lRow,1);
sh.insertColumnsAfter(lCol,1);
range.copyTo(sh.getRange(1, lCol+1, lRow, 1), {contentsOnly:false});
return sh;
}