甚至可以使用脚本将数据从一张纸复制到另一张纸吗? ImportRange样式?

时间:2019-08-04 01:08:42

标签: google-apps-script

我已经搜索了2天,似乎找不到答案,或者甚至没有人在做这样的事情。我试图用脚本将我的员工表移到我的“主表”上。我需要在单元格中保留格式和注释。

我能找到的最好的办法是打开他们的电子表格并将其复制到我的主服务器上,但是对于8名员工来说,如果我需要每天多次执行此操作将很痛苦。我只想构建一个函数,可以从“主表”运行脚本并将其覆盖其选项卡中的最后一个数据。但是我希望能够在我的母版表格中执行此操作。我是所有床单的所有者,但这变得很痛苦。

function copyCell() {
  var os = SpreadsheetApp.openById('1n4iFXGuC7yG1XC-UIbuT9VrQ7rJWngPkDCv0vsvDed4');
  var sheets = os.getSheets();
  var existingNote;
  var ss = SpreadsheetApp.getActiveSpreadsheet();

  var jobnumber = sheets.getRange("C2:C").getValues();
  for (var i = 0; i < jobnumber.length; i++)
   if (jobnumber[i][0] == sheets){

    existingNote = sheets.getRange("C" + (i+2)).getNote();
    sheets.getRange("C" + (i+2)).ss.setNote(existingNote);
    }

};

请让我知道是否有可能,并可能引用一个我认为能够对其进行修改以适应我的需求的脚本。感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这是复制与一系列单元格关联的笔记的可能解决方案。并将它们粘贴到类似大小的单元格上。

要复制笔记,可以使用getNotes()Docs here

要粘贴注释,可以使用setNotes()Docs here

如果您需要将其添加到脚本中,那么本文档中的示例代码非常不错。

如果您有一个脚本,希望与您分享很高兴能帮助您使其正常工作。


修改

类似这样的东西:

function transferNotes() {
  // Get notes (not comments) from the source spreadsheet
  var sourceSpreadheet = SpreadsheetApp.openById('ID_of_source_spreadsheet');
  var sourceTab = sourceSpreadheet.getSheetByName('Name_source_tab');
  var sourceRange = sourceTab.getRange('Source_range_address'); // e.g. "A:D"
  var notes = sourceRange.getNotes();

  // Post the notes to the target spreadsheet
  var targetSpreadheet = SpreadsheetApp.openById('ID_of_target_spreadsheet');
  var targetTab = targetSpreadheet.getSheetByName('Name_target_tab');
  var targetRange = targetTab.getRange('Target_range_address'); // Should be the same dimensions as sourceRange
  targetRange.setNotes(notes); 
}