【问题标题】:How to run a script that will set values on different sheet如何运行将在不同工作表上设置值的脚本
【发布时间】: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:Z10var OtherSheetRange=SpreadsheetApp.getActive().getSheetByName('Other Sheet').getRange("A1:C5"); 的范围,然后像任何其他范围一样处理。

标签: google-apps-script google-sheets


【解决方案1】:

这是一个简单的脚本,它将更改电子表格中所有工作表中的值,除非 A1 已经有值。

function myFunction() {
  var ss=SpreadsheetApp.getActive();
  var allSheets=ss.getSheets();
  for(var i=0;i<allSheets.length;i++)
  {
    if(!allSheets[i].getRange(1,1).getValue())
    {
      allSheets[i].getRange(1,1).setValue(i+1);
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 2017-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多