【发布时间】:2019-08-02 16:30:27
【问题描述】:
好的,仍然是新手程序员,但正在变得更好。能够修改代码,但还不能自己编写大部分代码。这是我目前的问题。
我经营一家小型企业,我们使用谷歌表格作为我们的 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
在主工作表的顶部提供到其他工作表的链接。这超出了我的想象,所以我不会尝试破坏下面的代码,哈哈。这是我找到的一个函数,但不知道如何实现它以与导入范围一起使用。
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 单元格的方向在两张纸上总是相同的,只需要选择起始单元格并沿着列表向下移动。我想使用我放在每个选项卡上主表顶部的按钮使其工作。
【问题讨论】: