【问题标题】:Desired sheet not being activated所需的工作表未激活
【发布时间】:2019-07-08 12:13:21
【问题描述】:

这段代码涉及三个电子表格

  1. 代码所在的电子表格
  2. 称为unstructuredSheets 的源电子表格
  3. 称为structuredSpreadsheet 的目标电子表格。

指令structuredSheet.activate 似乎没有做任何事情。 structuredSpreadsheet 中的第一张工作表保持活动状态。 任何想法为什么会这样?

function     importUnstructuredSpreadsheet2(unstructuredId,structuredId){
    //this function uses copy/paste

        var ssUnstructured=SpreadsheetApp.openById(unstructuredId);
        var numUnstructuredSheets= ssUnstructured.getSheets().length;  


    var ssStructured=SpreadsheetApp.openById(structuredId ); 
    var numStructuredSheets= ssStructured.getSheets().length;
    for (var n = 0; n < numUnstructuredSheets ; n++ ) {



     var unstructuredSheets=ssUnstructured.getSheets();
     var unstructuredSheet= unstructuredSheets[n];
     var structuredSheets=  ssStructured.getSheets();

     sheetName=unstructuredSheet.getSheetName();

     var usedRange =  unstructuredSheet.getDataRange(); 
     var structuredSheet=ssStructured.getSheetByName(sheetName);

     structuredSheet.activate();
     structuredSheet.getRange('A1').activate();// may want to do at starting cell
     unstructuredSheet.usedRange.copyTo(structuredSheets.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_NO_BORDERS, false);
   }//each sheet

【问题讨论】:

  • 三张纸是否共享相同的 ID?如果它们具有三个不同的 ID,您可以使用 SpreadsheetApp.openById("id") 来完成。另外,变量 ssStructured 来自哪里?
  • @Jescanellas 在上面的代码中,我添加了 for 循环之前的代码。
  • @Jescanellas 澄清:3 个电子表格,而不是 3 个工作表。 3 个不同的 ID。目标电子表格和源电子表格各有多个工作表。

标签: google-apps-script google-sheets


【解决方案1】:

activate 仅适用于运行在用户使用 Google 表格 UI 打开的电子表格的脚本,而不是通过代码打开的电子表格。

【讨论】:

  • 谢谢..这听起来像是原因。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多