Google apps script GoogleSheets通过根据匹配值追加列来添加注释

Google apps script GoogleSheets通过根据匹配值追加列来添加注释,google-apps-script,google-sheets,append,Google Apps Script,Google Sheets,Append,我们的目标是根据所选的值,在一段时间内向google工作表添加一个或多个注释 脚本将允许在工作表中添加一个按钮,并运行脚本函数以附加到下一个可用列 例如,选择的名称为Tim。写入注释后,按下按钮运行函数,并将其添加到D列(因为它是Tim的下一个可用列) 另一个例子是,选择了杰夫这个名字。写了一张便条。由于没有更多的列,append列应该自动创建一个新列,并允许在“Jeff”行中写入注释,这将是G列 不确定这是否可行,但希望得到一些建议或想法 A. B C D E F 做记号 B+ 部分完成任务,

我们的目标是根据所选的值,在一段时间内向google工作表添加一个或多个注释

脚本将允许在工作表中添加一个按钮,并运行脚本函数以附加到下一个可用列

例如,选择的名称为Tim。写入注释后,按下按钮运行函数,并将其添加到D列(因为它是Tim的下一个可用列)

另一个例子是,选择了杰夫这个名字。写了一张便条。由于没有更多的列,append列应该自动创建一个新列,并允许在“Jeff”行中写入注释,这将是G列

不确定这是否可行,但希望得到一些建议或想法

A. B C D E F 做记号 B+ 部分完成任务,但需要额外的时间,因为。。 89433 其他 提姆 A. 选中的 杰夫 C 不适用 作业#4 完成 其他 史蒂夫 A. 完整的 获取文件 收到 埃隆 B- 四分之三 查看电子邮件
以下是我认为你正在努力实现的目标-

而且,这段代码应该可以帮助您开始-

function main() {
  const name = "Steve";
  const note = "HELLO"
  addNote(name, note);
}

function addNote(name, note) {
  const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const values = ss.getDataRange().getValues();
  for (var rowIndex = 0; rowIndex < values.length; rowIndex++) {
    let row = values[rowIndex];
    let nameColumn = row[0];
    if (nameColumn == name) {
      let rowValues = ss.getRange(`${rowIndex+1}:${rowIndex+1}`).getValues()[0]
      .filter(value => value !== "")
      let newColIndex = rowValues.length;
      ss.getRange(rowIndex+1, newColIndex+1).setValue(note);
    }
  }
}

函数main(){
const name=“史蒂夫”;
const note=“你好”
addNote(名称、注释);
}
函数addNote(名称、注释){
const ss=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
常量值=ss.getDataRange().getValues();
对于(var rowIndex=0;rowIndex值!==“”)
设newColIndex=rowValues.length;
ss.getRange(rowIndex+1,newColIndex+1).setValue(注);
}
}
}

尽管如此,我还是强烈建议您选择其他内容作为唯一标识符,而不是名称,因为如果有两行具有相同的名称,那么代码实际上会针对这两行添加注释(错误)。

以下是我认为您正在尝试实现的目标-

而且,这段代码应该可以帮助您开始-

function main() {
  const name = "Steve";
  const note = "HELLO"
  addNote(name, note);
}

function addNote(name, note) {
  const ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  const values = ss.getDataRange().getValues();
  for (var rowIndex = 0; rowIndex < values.length; rowIndex++) {
    let row = values[rowIndex];
    let nameColumn = row[0];
    if (nameColumn == name) {
      let rowValues = ss.getRange(`${rowIndex+1}:${rowIndex+1}`).getValues()[0]
      .filter(value => value !== "")
      let newColIndex = rowValues.length;
      ss.getRange(rowIndex+1, newColIndex+1).setValue(note);
    }
  }
}

函数main(){
const name=“史蒂夫”;
const note=“你好”
addNote(名称、注释);
}
函数addNote(名称、注释){
const ss=SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
常量值=ss.getDataRange().getValues();
对于(var rowIndex=0;rowIndex值!==“”)
设newColIndex=rowValues.length;
ss.getRange(rowIndex+1,newColIndex+1).setValue(注);
}
}
}

尽管如此,我还是强烈建议选择其他东西作为唯一标识符,而不是名称,因为如果有两行具有相同的名称,那么代码实际上会针对这两行添加注释(错误).

我无法理解您当前的问题,
目标是根据所选的值在google工作表中添加一个或多个注释。
。尤其是,随着时间的推移,我无法理解
。我为此道歉。我可以问一下您当前问题的详细信息和您的目标吗?我无法理解您当前的问题,
目标是根据所选的值在google工作表中添加一个或多个注释。
。尤其是,随着时间的推移,我无法理解
。我为此道歉。我可以问一下你当前问题的细节和你的目标吗?这非常有效。如果我想从任何添加到列中的注释中添加一个注释以添加到匹配的值,该怎么办?@Alexander-它说的部分是
让rowValues=ss.getRange(
${rowIndex+1}:${rowIndex+1}
):${rowIndex+1}value!==“”)
已经为特定的名称获取所有注释。这非常有效。如果我想从任何添加到列中的注释中添加一个注释以添加到匹配的值,该怎么办?@Alexander-它说的部分是
让rowValues=ss.getRange(
${rowIndex+1}:${rowIndex+1}
):${rowIndex+1}value!==“”)
已经在获取特定名称的所有注释。