google-apps-script - 如何在谷歌电子表格中连续写入注释
问题描述
嗨,我试图了解如何在连续写入时打开新笔记。
在我的 googlespreadsheet 中,我有 10 列(从 U 到 AT 列)来写东西。当我在一个空行中添加一个新数据时,我需要当我完成数据的放置时,然后会打开一个盒子笔记来写它。
我发现下一个对编辑很有用的代码,但我需要一次插入不在编辑中的数据。
function onEdit() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getActiveSheet();
var cell = sheet.getActiveCell();
cell.setComment(" ");
}
解决方案
您需要一个 IF 语句来检查最后一行是否为“完成”列 U 到 UT 是否有值
感谢 SO 用户 moogsdad 在 U 列中找到最后一行
var Uvals = ss.getRange("U1:U").getValues();
var Ulast = Uvals.filter(String).length;
试试下面的代码。我没有测试过它,所以它可能在某处缺少分号或大括号。
function onEdit() {
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getActiveSheet();
var cell = sheet.getActiveCell();
// get last row on column U
var Uvals = sheet.getRange("U1:U").getValues();
var Ulast = Uvals.filter(String).length;
// check is the row being edited matches the last row
if (cell.getRow() == Ulast) {
var updateRange = sheet.getRange("U"+Ulast+":AT"+Ulast);
var UpdateValues = range.getValues();
var isComplete = true;
// should loop through all cells in you update range and set isComplete to false is any are blank.
for (var row in UpdateValues ) {
for (var col in UpdateValues[row]) {
if (UpdateValues[row][col] == '') {
isComplete = false;
}
}
// if all cells complete then set comment
if (isComplete == true) {
cell.setComment(" ");
}
} // end if edited row matches last row in U
} // end of function
推荐阅读
- php - 难以将其他扩展加载到 Azure 上的 php 实例中
- elasticsearch - 及时将多个日志从filebeat发送到logstash
- c# - 在 C# 中更改长日期格式
- bash - Bash:我如何(1)从包含一列数字的文件中的“i”行中读取一个数字,以及(2)将值分配给一个变量?
- c# - 如何使用字符串数组在 DataGridView 上添加多个列?
- oracle-sqldeveloper - HR Schema 示例数据库,展开表树时不显示 HR 表?
- c++ - 计算大于向量中数字的元素
- c++ - 如何仅从源代码构建 TensorFlow lite 而不是所有 TensorFlow?
- php - 在实践中使用 PHP 词典中的“@”是什么意思?
- batch-file - 是否可以将EXE文件转换回Bat