Konvertieren Sie Zahlen in der Google-Tabelle in Zeit
P粉575055974
2023-09-04 10:51:21
<p>Ich versuche, eine automatisierte Google Sheets-Tabelle zu erstellen, in der ich das Datum, die Startzeit, die Mittagszeit, die Endzeit, die Anzahl der pro Tag geleisteten Arbeitsstunden und schließlich die Anzahl der für einen Monat geleisteten Arbeitsstunden eingeben kann . Das Erstellen eines Arbeitsplans in Google Spreadsheet ist nicht allzu schwierig, aber ich würde gerne einige Verbesserungen vornehmen. Einer davon ist, dass die Tabelle zwar die Anzahl der am Tag geleisteten Arbeitsstunden korrekt berechnet, die Gesamtzahl jedoch als Uhrzeit anzeigt, z. B. 20:22 Uhr, und nicht als 8 Stunden und 22 Minuten. Eine andere Sache ist, dass dieses Format mich dazu zwingt, Stunden im Zeitformat zu schreiben, was mühsam ist. Ich möchte in eine Zelle 3 oder 4 Zahlen eingeben und diese in eine Uhrzeit umrechnen lassen können. </p>
<p>Ich habe herausgefunden, dass dies nur durch die Verwendung von Google Apps Script erreicht werden kann. Daher bin ich dem einzigen Tutorial gefolgt, das ich gefunden habe, aber der Code hat überhaupt nicht funktioniert. Das Skripttool verwendet JavaScript, mit dem ich einigermaßen vertraut bin, da ich es jeden Tag in After Effects-Ausdrücken verwende, aber ich bin kein Experte. Wenn mir jemand bei diesem weniger anspruchsvollen Projekt helfen könnte, wäre ich sehr dankbar. Wenn jemand eine bessere Alternative zu dem hat, was ich mache, bin ich natürlich völlig offen für eine Umleitung. Vielen Dank. Ich füge den Code ein, den ich basierend auf dem Tutorial erstellt habe, und dann einen Link zum Tutorial selbst. </p>
<pre class="brush:php;toolbar:false;">var COLUMN_TO_CHECK = 3;
var SHEET_NAME = "Sheet1";
Funktion 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");
}
}
}</pre>
<p>In Zeile 7 ist ein Fehler aufgetreten: var sheet = ss.getActiveSheet();. Der Debugger ruft die Variable <strong>ss</strong> null auf. </p>
<p>Ein Problem, das mir bei dem Tutorial aufgefallen ist, ist, dass es Inkonsistenzen zwischen dem vorgestellten Code und dem Schritt-für-Schritt-Code aufweist und außerdem einige Codezeilen übersprungen werden. Dies kann der Grund sein, warum mein Code nicht funktioniert. Als ich dem Tutorial folgte, landete ich in einer Sackgasse, in der ich versuchte, den vorgestellten Code genau zu kopieren. </p>
<p>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/</p>
我是您在这里引用的文章的作者。我不经常使用StackOverflow,所以无法在评论中添加这个,我相信这里的首选是这样做。
请注意,
ss
变量引用的是活动电子表格。这是与脚本绑定的电子表格。因为我们使用了onEdit()
触发器,所以这个脚本需要绑定到Google表格。根据您的问题,我不确定您是否已经这样做了,但是以下是完成此操作的说明: 在您的Google表格菜单中,转到>扩展>Apps Script。在这里,粘贴代码并保存项目。确保您的工作表名称(选项卡中的名称)与您希望修改和更新的工作表名称相同,并相应地更新
SHEET_NAME
变量。这应该解决您遇到的错误。
注意-主要代码下面的代码分解仅用于突出显示代码的一些重要部分,而不是一步一步的指南。我已经根据这个考虑更新了帖子,并感谢您的反馈。
如果我对您的问题有误解,我向您道歉。
Tanaike-如果您认为这样更合适,请随时删除此回复或将其合并到评论中,而不是放在这里。