将注释从一张纸复制到另一张纸。导入范围?

时间:2019-08-02 16:30:27

标签: google-apps-script

好的,仍然是菜鸟编码器,但是越来越好。能够修改代码,但还不能自己编写大多数代码。这是我目前的问题。

我经营一家小型企业,我们使用Google工作表作为我们的CRM(它使我们以这种方式更快,更轻松地完成此工作),我拥有一个与= importrange其他人一起工作的工作表。它运作完美,使我的生活变得轻松自在,但是有一件事我无法克服。那就是存储在单元格中的笔记。我必须打开他们的表才能查看笔记。因此,我正在尝试获取一个脚本,该脚本将在导入的范围内更新注释。然后,每天当我查看他们的信息时,我都会按下一个按钮,它将其他人的便条纸上的便条纸写到我的便条纸上,就可以覆盖最后的便条纸并将其替换。

我制作了一个包含3个工作表的示例(每个人都可以编辑),因为我无法发布实际的业务表来处理。寻求帮助后,我应该能够对其进行修改并转移到我的实际工作表中。

(主表)https://docs.google.com/spreadsheets/d/1TMNyohd5Vtn3p9cpLebmZASt2TzbWL80fIesCu89-ig/edit?usp=sharing

(员工1) https://docs.google.com/spreadsheets/d/1n4iFXGuC7yG1XC-UIbuT9VrQ7rJWngPkDCv0vsvDed4/edit?usp=sharing

(员工2) https://docs.google.com/spreadsheets/d/1EJVa5TgF6UkLhiLtfQ6o7BzpdzXDGcVhkibLCYwlfAU/edit?usp=sharing

链接在主表的顶部相互链接。这是我的头上的东西,所以我不会尝试在lol之下添加代码。这是我找到的功能,但不知道如何实现将其与导入范围一起使用。

function getNotes(rangeAddress) {
  // returns notes inserted with Insert > Note from one cell or a range of cells
  // usage:
  //    =getNotes("A1"; GoogleClock())
  //    =getNotes("A1:B5"; GoogleClock())
  // see /docs/forum/AAAABuH1jm0xgeLRpFPzqc/discussion
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var range = ss.getRangeByName(rangeAddress);
  if (!range) return '#N/A: invalid range. Usage:      =getNotes("A1:B5"; GoogleClock())';

  var notesArray = new Array();
  for (var i = 0; i < range.getHeight(); i++) {
    notesArray[i] = new Array();
    for (var j = 0; j < range.getWidth(); j++) {
      notesArray[i][j] = range.getCell(i + 1, j + 1).getComment();
    }    
  }
  return notesArray;
}

所以该代码我希望它从“雇员1”表中读取注释,并将其写到正确单元格中的“主”表上。由于它是一个= importrange,因此在两张纸上单元格的方向将始终相同,只需要选择起始单元格并在列表中向下即可。我想使用放在每个标签上母版表顶部的按钮来使它工作。

1 个答案:

答案 0 :(得分:1)

此脚本使用过时的方法。例如,GoogleClock() is gone

请参阅我对your similar question的其他答复,以寻求可能的解决方案。