首页 > 解决方案 > 在 google sheet apt 脚本中将数据写入变量时遇到问题

问题描述

我正在寻找创建一个谷歌表格,我可以在其中获取一些具有区域的数据,并根据一个区域创建全新的表格。想法是这些可以单独发送到该地区。我试图将该区域放入一个变量(regionname)中,然后能够进行迭代,但是它一直引用回不同工作表上的数据

function SplitMacro() {

  /**Clear the old data from Working_sheet**/
  var app = SpreadsheetApp;
  var activeSheet = app.getActiveSpreadsheet().getActiveSheet();
  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getRange('D7').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Working_Sheet'));
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()).activate();
  spreadsheet.getActiveRangeList().clear({contentsOnly: true, skipFilteredRows: true});

  /**Get a list of all the regions, this will be branches later, and put into the working sheet**/
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('All_Data'));
  spreadsheet.getRange('A:A').activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Working_Sheet'));

  /**De dup the regions so have a unique list**/
  spreadsheet.getRange('A1').activate();
  spreadsheet.getRange('All_Data!A:A').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
  spreadsheet.getRange('A:A').activate();
  spreadsheet.getActiveRange().offset(1, 0, spreadsheet.getActiveRange().getNumRows() - 1).activate();
  spreadsheet.getActiveRange().removeDuplicates().activate(); 

  /**Get the number of regions that need to split out on**/
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('UserInputs'));
  var noregion = activeSheet.getRange(2,2).getValue();
  var filename = activeSheet.getRange(1,2).getValue();
  Logger.log(noregion); //comments out the line
  Logger.log(filename);
  //spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Working_Sheet'), true);
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Working_Sheet'));
  for(var i=1; i<=2; i++) {
    Logger.log("Hello");    
    /**Get the region data to then filter on and for the naming convention on the new sheet**/
    var regionname = activeSheet.getRange(i+1,1).getValue();
    Logger.log(regionname);
  }
}

标签: google-apps-scriptgoogle-sheets

解决方案


推荐阅读