首頁  >  問答  >  主體

在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>
P粉575055974P粉575055974432 天前733

全部回覆(1)我來回復

  • P粉426906369

    P粉4269063692023-09-05 09:24:10

    我是您在這裡引用的文章的作者。我不經常使用StackOverflow,所以無法在評論中添加這個,我相信這裡的首選是這樣做。

    請注意,ss變數引用的是活動電子表格。這是與腳本綁定的電子表格。因為我們使用了onEdit()觸發器,所以這個腳本需要綁定到Google表格。根據您的問題,我不確定您是否已經這樣做了,但是以下是完成此操作的說明: 在您的Google表格選單中,前往>擴充>Apps Script。

    在這裡,貼上程式碼並保存專案。確保您的工作表名稱(選項卡中的名稱)與您希望修改和更新的工作表名稱相同,並相應地更新SHEET_NAME變數。

    這應該可以解決您遇到的錯誤。

    注意-主要程式碼下面的程式碼分解僅用於突出顯示程式碼的一些重要部分,而不是一步一步的指南。我已經根據這個考慮更新了帖子,並感謝您的反饋。

    如果我對您的問題有誤解,我向您道歉。

    Tanaike-如果您認為這樣更合適,請隨時刪除此回應或將其合併到評論中,而不是放在這裡。

    回覆
    0
  • 取消回覆