我怎样才能自动使用谷歌脚本将单元格 Cx 中的公式向下拖动到 BAx。带有 X 的整个范围将替换为该代码。我只想把它拖到工作表的末尾。
function autofill(){
var ValuesFromC = ss.getRange("C1:C").getValues();
var LastRowFromC = ValuesFromC.filter(String).length;
LastRowFromC += 1
Logger.log(LastRowFromC);
var rangeToFill = "C" + LastRowFromC + ":BA" + LastRowFromC
ss.getRange(rangeToFill)
@ziganotschka编辑
我编辑了一点,得到了那种代码:
function autofill(){
var ValuesFromC = ss.getRange("C1:C").getValues();
var LastRowFromC = ValuesFromC.filter(String).length;
var LastRow = ss.getLastRow();
LastRowFromC += 1;
var rangeToFill = "C" + LastRowFromC + ":BA" + LastRowFromC;
var range = ss.getRange(rangeToFill);
range.copyValuesToRange(ss, 3, 53, LastRowFromC, LastRow)
但它从范围内复制为每个值,但我想复制足以用于单元格的公式
您无法使用 Apps 脚本"拖动",但您可以使用您选择的范围填充任意尺寸范围。
为此,请使用方法 copyValuesToRange(sheet, column, columnEnd, 行,行结束(。
样本:
function autofill(){
var ss=SpreadsheetApp.getActive().getActiveSheet();
var LastRowFromC =ss.getLastRow() ;
var rangeC=ss.getRange("C1:C"+LastRowFromC)
var rangeToFill="D1:B"+LastRowFromC;
rangeC.copyValuesToRange(ss, 3, 53, 1, LastRowFromC);
}
如果只想复制公式
- 将方法copyTo(destination, copyPasteType, transposed(与copyPasteType
PASTE_FORMULA
一起使用。 - 由于此方法要求 copyTo 范围具有与原始范围(C 列(相同的维度 - 在循环中逐个复制范围(相当于拖动列( - 利用方法偏移量
示例代码:
function autofill(){
var ss=SpreadsheetApp.getActive().getActiveSheet();
var LastRowFromC =ss.getLastRow() ;
var rangeC=ss.getRange("C1:C"+LastRowFromC);
for(var i=1;i<53;i++){ //53 correcponds to column BA
var rangeToFill=rangeC.offset(0,i);
rangeC.copyTo(rangeToFill, SpreadsheetApp.CopyPasteType.PASTE_FORMULA);
}
}