在Google電子表格中將數字轉換為時間
<p>我正在嘗試建立一個自動化的Google Sheets電子表格,我可以在其中輸入日期、上班時間、午餐時間、下班時間、每天工作小時數,最後總結出一個月的工作小時數。在Google電子表格中建立一個工作時間表並不太難,但有一些改進我想要做。一是即使電子表格正確計算了當天的工作小時數,它也將總數顯示為時鐘時間,例如下午8:22,而不是8小時22分鐘。另一件事是這種格式迫使我以時間格式書寫小時,這很繁瑣。我希望能夠在儲存格中輸入3或4個數字,並將其轉換為時間。 </p>
<p>我了解到實現這一點的唯一方法是使用Google Apps Script,所以我按照我找到的唯一教程進行了操作,但程式碼根本不起作用。腳本工具使用的是JavaScript,我對它有一些了解,因為我每天都在After Effects表達式中使用它,但我並不是專家。如果有人能幫助我解決這個不太具有挑戰性的項目,我會非常感激。當然,如果有人對我所做的任何事情有更好的替代方案,我完全可以改變方向。非常感謝。我將貼上我根據教程創建的程式碼,然後是教程本身的連結。 </p>
<pre class="brush:php;toolbar:false;">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");
}
}
}</pre>
<p>我在第7行遇到了一個錯誤:var sheet = ss.getActiveSheet();。調試器將變數<strong>ss</strong>稱為null。 </p>
<p>我注意到教程中的一個問題是,它在特色程式碼和逐步編寫的程式碼之間存在不一致,而且它們也跳過了一些程式碼行。這可能是我的程式碼不起作用的原因。當我按照教程進行操作時,它將我帶入了死胡同,我試圖完全複製特色代碼。 </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>