【发布时间】:2017-08-20 13:31:10
【问题描述】:
我分享我的这段代码。 我有麻烦。当我在谷歌电子表格中运行此脚本时,它仅适用于 1 张(“VT.Attivita”),而不适用于第二张(“Pratica(REF)”)。 我希望我的公式可以在一张纸上做某事,然后在另一张纸上做其他事情。我使用了“var sheet = ss.getSheetByName”,但它似乎不起作用......
//----------------------------------------------------------------------- COLONNA BJ -------------------------------------------------------------------(formula su tutte le celle delle ultime 20 righe della colonna)--
// formula su tutte le celle delle ultime 20 righe della colonna "% Pratica"
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("VT.Attivita");
var firstRow = sheet.getLastRow()-19
var cell = sheet.getRange(firstRow, 62, 20);
cell.setFormula('=IF(BI' + firstRow + '="";"";AVERAGE(FILTER(BI:BI;J:J=J' + firstRow + ';NOT(BH:BH="");A:A="RU")))');
//----------------------------------------------------------------------- COLONNE A:BJ ---------------------------------------(incolla solo valori di formule sulle celle di tutte le ultime 20 righe di queste colonne)--
//incolla solo valori (TUTTO)
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("VT.Attivita");
var destination = ss.getSheetByName("VT.Attivita");
var firstRow = sheet.getLastRow()-19
var range = source.getRange('A' + firstRow +':BJ'+sheet.getLastRow());
range.copyValuesToRange(destination, 1, 62, firstRow, sheet.getLastRow());
//--------------------------------------------------------------------------------- EseguiFormulePraticaREF ---------------------------------------------------------------------------------
// cancella tutto
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Pratica(REF)");
var lastRow = sheet.getLastRow();
var range = sheet.getRange('A2:A' + lastRow);
range.clear({contentsOnly: true});
//formula su cella A2 FILTER
var A2 = sheet.getRange(2, 1);
A2.setFormula('=sort(unique(FILTER(VT.Attivita!J:J;ROW(VT.Attivita!J:J)>1)))');
// incolla solo valori
var source = ss.getSheetByName("Pratica(REF)");
var destination = ss.getSheetByName("Pratica(REF)");
var range = source.getRange('A1:A'+sheet.getLastRow());
range.copyValuesToRange(destination, 1, 1, 1, sheet.getLastRow());
【问题讨论】:
-
您可以创建一个类似
OtherSheetName!A1:Z10或var OtherSheetRange=SpreadsheetApp.getActive().getSheetByName('Other Sheet').getRange("A1:C5");的范围,然后像任何其他范围一样处理。
标签: google-apps-script google-sheets