google-sheets - 需要为 Google 表格仪表板获取永久时间戳
问题描述
我正在尝试为谷歌表格中的活动构建仪表板,为此我有一个页面,学生可以在其中输入活动名称及其状态: 活动页面
我需要获取活动状态何时被修改的时间戳,女巫发生在另一个页面: 仪表板页面
我在哪里使用标志来锁定使用 now() 函数获取的时间和日期。问题是:每次页面更新时,我都会丢失时间戳。我怎样才能永久获得它?
解决方案
您可以使用Apps 脚本来实现您的目标:
- 使用onEdit
触发器 检查某个单元格何时被手动更改。 - 检查单元格是否来自列
Status
并获取行。 - 根据值在另一张表中写入时间戳
Status
例如:
function onEdit(event){
var editedSheet = event.source.getActiveSheet();
var eRange = event.range;
// If the name is Activities and the column edited is A
if (editedSheet.getName() == "Activities" && eRange.getColumn() == 1){
var sprsheet = SpreadsheetApp.getActiveSpreadsheet();
var dashboard = sprsheet.getSheetByName("Dashboard");
var dshbValues = dashboard.getRange("B1:L1").getValues(); //Values in Dashboard
//Compare the value introduced with the Values in Dashboard
for (var i = 0; i < dshbValues[0].length; i++){
//If they coincide, write the timestamp in the row edited, correspondent column
if (eRange.getValue() == dshbValues[0][i]){
var timestamp = new Date();
dashboard.getRange(eRange.getRow(), i + 2).setValue(timestamp);
}
}
}
}
考虑到您第一次需要手动运行脚本以提供所需的权限。此外,活动列 C 和仪表板列 A 中的值需要以相同的顺序排列以保持连贯性。
参考:
推荐阅读
- python - GridSearchCV 的 sklearn 实现以什么顺序评估参数组合?
- arrays - rank 和 unrank 组合将 k 个球分配到 n 个不同容量的 bin 中
- android - Android Studio -- 在安卓手机中双重安装同一个项目
- ios - 使用 Swift 5 截屏会返回黑色图像,而不是应用程序的屏幕
- google-cloud-kms - 关于解开 KMS 加密密钥的 404 错误
- javascript - Webpack splitChunks 如何为每个 npm 包获取一个块(该块应该包含每个包的依赖项)
- java - 如果信号量锁获取/tryAcquire 失败,如何让 Java 线程执行不同的任务而不是阻塞?
- python-3.x - Pandas 导入 DataFrame 与整个库 - 速度和内存问题
- c - 无法在 Visual Studio 代码中构建 C 代码
- java - 按字母顺序排列的链表排序