Google apps script 基于Google工作表中的动态单元格自动添加注释

Google apps script 基于Google工作表中的动态单元格自动添加注释,google-apps-script,google-sheets,google-sheets-macros,Google Apps Script,Google Sheets,Google Sheets Macros,我正在尝试修改Google Sheets中的一个脚本,该脚本创建一个包含其所在单元格内容的便笺。我想我就快到了——不过,我下面的脚本只引用了一个静态单元格。我需要它在C列的每个单元格中创建一个注释,每个注释都引用指定的特定单元格中的文本 例如: C1包含“测试”,C1注释显示“测试” C2包含“你好”,C2注释显示“你好” C3包含“世界”,C3注释显示“世界” 以下是我目前拥有的脚本: function addNote() { var ss = SpreadsheetApp.getActi

我正在尝试修改Google Sheets中的一个脚本,该脚本创建一个包含其所在单元格内容的便笺。我想我就快到了——不过,我下面的脚本只引用了一个静态单元格。我需要它在C列的每个单元格中创建一个注释,每个注释都引用指定的特定单元格中的文本

例如:

  • C1包含“测试”,C1注释显示“测试”
  • C2包含“你好”,C2注释显示“你好”
  • C3包含“世界”,C3注释显示“世界”
以下是我目前拥有的脚本:

function addNote() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var targetCell = sheet.getRange("C3");
var sourceCell = sheet.getRange("C3");

var noteText = sourceCell.getValue();
targetCell.setNote(noteText);

}***
感谢任何可以提供的帮助-如果这可以在电子表格更新时更新注释的内容,如果有人知道如何附加该内容,那就太好了

  • 您希望将“C”列的值设置为同一列的注释。
    • 注释的值与“C”列单元格的值相同
    • 例如,当单元格“C1”具有“测试”时,您希望将“测试”设置为注释
  • 编辑活动电子表格第一个选项卡中“C”列的值时,您需要更新注释
  • 您希望使用谷歌应用程序脚本实现这一点
从你的问题和回复意见中,我可以理解上述内容。如果我的理解是正确的,那么这个示例脚本怎么样?请把这看作是几个答案中的一个

在这个示例脚本中,我使用了一个简单的触发器。这样,当编辑第一个选项卡的“C”列时,脚本将运行,并使用“C”列的值更新“C”列的注释

示例脚本: 请复制并粘贴以下脚本并保存脚本编辑活动电子表格第一个选项卡中“C”列的单元格时,将运行脚本,并使用“C”列的值设置注释。

function onEdit(e) {
  var sheet = e.source.getSheets()[0];
  if (e.range.getSheet().getSheetName() === sheet.getSheetName()) {
    var range = sheet.getRange("C1:C" + sheet.getLastRow());
    var values = range.getValues();
    range.setNotes(values);
  }
}
参考资料:
      • 您希望将“C”列的值设置为同一列的注释。
        • 注释的值与“C”列单元格的值相同
        • 例如,当单元格“C1”具有“测试”时,您希望将“测试”设置为注释
      • 编辑活动电子表格第一个选项卡中“C”列的值时,您需要更新注释
      • 您希望使用谷歌应用程序脚本实现这一点
      从你的问题和回复意见中,我可以理解上述内容。如果我的理解是正确的,那么这个示例脚本怎么样?请把这看作是几个答案中的一个

      在这个示例脚本中,我使用了一个简单的触发器。这样,当编辑第一个选项卡的“C”列时,脚本将运行,并使用“C”列的值更新“C”列的注释

      示例脚本: 请复制并粘贴以下脚本并保存脚本编辑活动电子表格第一个选项卡中“C”列的单元格时,将运行脚本,并使用“C”列的值设置注释。

      function onEdit(e) {
        var sheet = e.source.getSheets()[0];
        if (e.range.getSheet().getSheetName() === sheet.getSheetName()) {
          var range = sheet.getRange("C1:C" + sheet.getLastRow());
          var values = range.getValues();
          range.setNotes(values);
        }
      }
      
      参考资料:

        • 以下脚本将使用正在编辑的单元格中的文本创建注释。单元格必须位于第三列(“C”)。要更改可编辑的列,请将3更改为正确的列号(A=1、B=2、C=3等)

          创建便笺后,您可能需要进一步清除单元格。以下是一个例子:

          function onEdit(e){
            var range = e.range;
            if (range.getColumn() !== 3) return;
            range.setNote(e.value);
            range.clearContent();
          }
          
          我以前做过类似的事情,发现通过在单元格中输入值来不断添加注释是很有用的。以下是如何做到这一点:

          function onEdit(e){
            var range = e.range;
            var newNote = '';
            var cellValue = e.value;
            if (range.getColumn() !== 3) return; 
             var previousNote = range.getNote() ? range.getNote() : '';
            if (previousNote) {
              newNote = cellValue + '\n\n' + previousNote;
            } else {
              newNote = cellValue;
            } 
            range.setNote(newNote);
            range.clearContent();
          }
          

          以下脚本将使用正在编辑的单元格中的文本创建注释。单元格必须位于第三列(“C”)。要更改可编辑的列,请将3更改为正确的列号(A=1、B=2、C=3等)

          创建便笺后,您可能需要进一步清除单元格。以下是一个例子:

          function onEdit(e){
            var range = e.range;
            if (range.getColumn() !== 3) return;
            range.setNote(e.value);
            range.clearContent();
          }
          
          我以前做过类似的事情,发现通过在单元格中输入值来不断添加注释是很有用的。以下是如何做到这一点:

          function onEdit(e){
            var range = e.range;
            var newNote = '';
            var cellValue = e.value;
            if (range.getColumn() !== 3) return; 
             var previousNote = range.getNote() ? range.getNote() : '';
            if (previousNote) {
              newNote = cellValue + '\n\n' + previousNote;
            } else {
              newNote = cellValue;
            } 
            range.setNote(newNote);
            range.clearContent();
          }
          

          我为我糟糕的英语水平道歉。关于
          C1包含“TEST”
          ,在这种情况下,我是否应该认为单元格“C1”的值与
          TEST的值不相同?例如,当单元格“C1”的值为
          sampleTESTsample
          时,您需要检查单元格的值中是否包含
          TEST
          。在这种情况下,我认为需要准备您想要的单词列表。我的理解正确吗?嗨,塔奈克,我需要这张便条来反映它所在的单元格中包含的值。因此,如果C1包含“测试”,则注释包含“测试”。如果C1更改为“sampleTESTsample”,则说明中包含“sampleTESTsample”。感谢您的回复。在您的情况下,单元格值始终与注释相同。我问过你所想的
          的含义。当编辑列“C”的单元格时,您希望自动更新列“C”的注释。我的理解正确吗?是的,我相信是正确的!谢谢你的回复。根据您的回复意见,我提出了一个示例脚本作为答案。你能确认一下吗?如果我误解了你的问题,而这不是你想要的结果,我道歉。我为我糟糕的英语技能道歉。关于
          C1包含“TEST”
          ,在这种情况下,我是否应该认为单元格“C1”的值与
          TEST的值不相同?例如,当单元格“C1”的值为
          sampleTESTsample
          时,您需要检查单元格的值中是否包含
          TEST
          。在这种情况下,我认为需要准备您想要的单词列表。我的理解正确吗?嗨,塔奈克,我需要这张便条来反映它所在的单元格中包含的值。因此,如果C1包含“测试”,则