我想建立一个自动化的谷歌表格电子表格,我可以输入日期,上班时间,午餐时间,下班时间,每天的总工作时间,最后汇总当月的所有工作时间。在谷歌电子表格中创建这样的工作时间表并不太困难,但我想做一些改进。一个是,即使电子表格正确计算了一天的小时数,它也会显示为时钟时间,例如晚上8:22,而不是8:22小时。另一件事是,这种格式迫使我以时间格式编写小时数,这很繁琐。我想在单元格中键入3或4位数字,让它为我转换为时间。
我了解到实现这一目标的唯一方法是使用Google Apps Script,所以我遵循了我在这方面找到的唯一教程,但代码就是不起作用。脚本工具使用JavaScript,我有点熟悉,因为我每天都在After Effects表达式中使用它,但我几乎不是Maven。我希望有人能帮助我完成这个毫无挑战性的项目(对你来说:D)。当然,如果有人有更好的替代方案,我完全愿意改变课程。非常感谢。我将粘贴我按照教程创建的代码,然后链接到教程本身。
var COLUMN_TO_CHECK = 3;
var SHEET_NAME = "Sheet1";
function onEdit(e){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
if(sheet.getName() === SHEET_NAME){
var selectedCell = sheet.getActiveCell();
selectedCell.setNumberFormat("@");
if(selectedCell.getColumn() === COLUMN_TO_CHECK){
var cellValue = selectedCell.getValue();
var time = cellValue.substr(0,2)+":"+cellValue.substr(cellValue.lenght - 2);
selectedCell.setValue(time);
selectedCell.setNumberFormat("hh:mm");
}
}
}
我在第7行得到一个错误:var sheet = ss.getActiveSheet();.调试器调用变量ss为null。
我注意到这个教程的一点是,它的特色代码和你一步一步写的代码不一致,而且他们也跳过了一些代码行。这可能是我的代码不工作的原因。我试图复制特色代码时,遵循教程把我带到了死胡同。
https://yagisanatode.com/2018/06/02/google-apps-script-how-to-automatically-generate-a-time-from-a-four-digit-24-hour-time-in-google-sheets/
1条答案
按热度按时间eiee3dmh1#
我是你在这里引用的文章的作者。我没有足够的使用StackOverflow来将其添加到评论中,我相信,这将是这里的首选。
请注意,
ss
变量引用了活动电子表格。这是绑定到脚本的电子表格。因为我们使用onEdit()
触发器,所以需要将此脚本绑定到Google Sheet。从您的问题中,我不确定您是否已经这样做了,但这里有完成此操作的说明:在Google Sheet菜单中,转到〉扩展〉应用脚本。从这里粘贴代码并保存项目。确保您的工作表(标签中的工作表)与您希望修改的工作表相同,并相应地更新
SHEET_NAME
变量。这将解决您所面临的错误。
注意-主代码下面的代码分解只是为了突出代码的一些重要部分,而不是一步一步的指导。我已经更新了这篇文章,并感谢反馈。
如果我误解了你的问题,我道歉。