Google 試算表自動化教學:輸入日期自動分類,跨頁籤搬移資料(含格式保留攻略)

Josh-avatar-img
發佈於學習
更新 發佈閱讀 7 分鐘
vocus|新世代的創作平台

在管理專案進度或待辦清單時,我們常希望「填入日期」後,該列資料能自動移到「已完成」的頁籤,保持畫面清爽。雖然內建公式可以做到資料同步,但要達成「搬移」且「保留格式」,就需要動用 Google Apps Script

以下分享一套 優化版腳本,支援雙向搬移,且能完美保留原本的背景顏色、文字格式與日期顯示方式。

第一步:開啟指令碼編輯器

  1. 在你的 Google 試算表中,點擊上方選單的「擴充功能」>「Apps Script」。
  2. 進入編輯器後,刪除原本的所有預設內容。

第二步:貼上自動化腳本

將下方代碼完整複製並貼入編輯器中。這段代碼採用 copyTo 邏輯,確保格式不會在搬移過程中跑掉。

/**
* 自動雙向搬移資料列(V2 防呆版:自動新增列)
*/
function onEdit(e) {
const ss = e.source;
const range = e.range;
const sheet = range.getSheet();
const sheetName = sheet.getName();
const row = range.getRow();
const col = range.getColumn();
const value = range.getValue();

// --- 設定區域 ---
const MAIN_SHEET = "原始資料";
const TARGET_SHEET = "已完成";
const DATE_COL = 2;
// ----------------

if (row <= 1) return;

if (sheetName === MAIN_SHEET && col === DATE_COL && value instanceof Date) {
moveRowWithFormat(sheet, TARGET_SHEET, row);
}
else if (sheetName === TARGET_SHEET && col === DATE_COL && value === "") {
moveRowWithFormat(sheet, MAIN_SHEET, row);
}
}

/**
* 帶格式搬移的核心函式(含自動增列功能)
*/
function moveRowWithFormat(sourceSheet, destSheetName, row) {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const destSheet = ss.getSheetByName(destSheetName);

const lastCol = sourceSheet.getLastColumn();
const sourceRange = sourceSheet.getRange(row, 1, 1, lastCol);

// --- V2 新增:檢查目標分頁是否有空間 ---
const destLastRow = destSheet.getLastRow(); // 目前最後一筆資料
const destMaxRows = destSheet.getMaxRows(); // 目前網格總列數

// 如果資料已填滿,自動新增一列
if (destLastRow >= destMaxRows) {
destSheet.insertRowAfter(destMaxRows);
}
// ------------------------------------

const destRow = destLastRow + 1;
const destRange = destSheet.getRange(destRow, 1, 1, lastCol);

sourceRange.copyTo(destRange);
sourceSheet.deleteRow(row);
}

第三步:關鍵的觸發與授權設定

貼上代碼後,若沒有進行以下動作,腳本將無法運作:

  1. 存檔與命名:點擊上方的「儲存」圖示(磁碟片),並為專案取個名字。
  2. 手動授權
    • 在編輯器上方的下拉選單選取 onEdit。
    • 點擊「執行」按鈕。此時會跳出「需要授權」視窗,請點選「查看權限」。
    • 選擇你的 Google 帳號,看到「Google 尚未驗證此應用程式」時,點選左下角 「進階」。
    • 點選最下方的 「前往(你的專案名稱)(不安全)」,最後按下 「允許」。
    • 注意:執行後若報錯為正常現象,因為手動執行時缺少編輯事件的參數,只要完成授權流程即可。

運作原理與注意事項

  • 觸發機制:此腳本使用 onEdit 簡單觸發器。當你「親手編輯」指定欄位時就會觸發。
  • 格式完美同步:使用 copyTo 代替傳統的 appendRow,能將儲存格的背景色、字體大小、日期顯示格式(例如 YYYY/MM/DD)一併帶到新分頁。
  • 雙向搬移:不僅填入日期會移走,如果你在「已完成」分頁反悔了,只要將日期欄位內容清空(Delete),該列就會自動飛回「原始資料」分頁。
  • 工作表名稱:請務必確保程式碼中的 MAIN_SHEET 名稱與試算表下方的標籤名稱完全一致

💡 進階優化:避免「資料列不足」導致報錯

在使用上述腳本一段時間後,你可能會遇到一個小問題:當「已完成」分頁的表格被填滿(到達 Google Sheet 預設的列數上限)時,程式會因為找不到下一列而報錯。

為了讓工具更耐用,我們可以加入一段「防呆機制」。若目標分頁沒有空間了,程式會自動新增一列空白列。

透過這個自動化小技巧,你可以輕鬆打造出如 App 般順滑的任務管理系統。若想了解更多進階用法,歡迎參考 Google Apps Script 官方開發文件。

留言
avatar-img
Josh的沙龍
20會員
120內容數
分享知識
你可能也想看
Thumbnail
不會寫程式也能自動化!教你用 Google Sheet 搭配 Google App Script,打造一鍵寄信與報表自動化流程。從需求收斂模板、指派按鈕到錯誤排除,完整教學讓你輕鬆召喚辦公小機器人,告別重複瑣事!
Thumbnail
不會寫程式也能自動化!教你用 Google Sheet 搭配 Google App Script,打造一鍵寄信與報表自動化流程。從需求收斂模板、指派按鈕到錯誤排除,完整教學讓你輕鬆召喚辦公小機器人,告別重複瑣事!
Thumbnail
透過整合Google Sheets、Notion、Google Contacts、Google Calendar及Google Docs等工具,自動化報價及日曆事件的流程,大幅提升工作效率,減少人為錯誤,釋放更多時間專注於業務發展。此自動化方案適用於自由工作者和小企業主。
Thumbnail
透過整合Google Sheets、Notion、Google Contacts、Google Calendar及Google Docs等工具,自動化報價及日曆事件的流程,大幅提升工作效率,減少人為錯誤,釋放更多時間專注於業務發展。此自動化方案適用於自由工作者和小企業主。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
《轉轉生》(Re:INCARNATION)為奈及利亞編舞家庫德斯.奧尼奎庫與 Q 舞團創作的當代舞蹈作品,結合拉各斯街頭節奏、Afrobeat/Afrobeats、以及約魯巴宇宙觀的非線性時間,建構出關於輪迴的「誕生—死亡—重生」儀式結構。本文將從約魯巴哲學概念出發,解析其去殖民的身體政治。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
本文分析導演巴里・柯斯基(Barrie Kosky)如何運用極簡的舞臺配置,將布萊希特(Bertolt Brecht)的「疏離效果」轉化為視覺奇觀與黑色幽默,探討《三便士歌劇》在當代劇場中的新詮釋,並藉由舞臺、燈光、服裝、音樂等多方面,分析該作如何在保留批判核心的同時,觸及觀眾的觀看位置與人性幽微。
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
背景:從冷門配角到市場主線,算力與電力被重新定價   小P從2008進入股市,每一個時期的投資亮點都不同,記得2009蘋果手機剛上市,當時蘋果只要在媒體上提到哪一間供應鏈,隔天股價就有驚人的表現,當時光學鏡頭非常熱門,因為手機第一次搭上鏡頭可以拍照,也造就傳統相機廠的殞落,如今手機已經全面普及,題
Thumbnail
最近想在家中儲備防災物資,以及發現有時候零食、化妝品,沒注意很容易放到過期,所以想把保存期限存到google 日曆,讓它時間接近時跳出提醒。但感覺自己建日曆活動很麻煩,於是就用 Google 表單、試算表和 Apps Script 弄了一個自動將食品保存期限新增到 Google 日曆的工具
Thumbnail
最近想在家中儲備防災物資,以及發現有時候零食、化妝品,沒注意很容易放到過期,所以想把保存期限存到google 日曆,讓它時間接近時跳出提醒。但感覺自己建日曆活動很麻煩,於是就用 Google 表單、試算表和 Apps Script 弄了一個自動將食品保存期限新增到 Google 日曆的工具
Thumbnail
在 Google Sheets 中,SPARKLINE 函數提供了一個方便的方法來創建迷你圖表,讓你可以輕鬆地視覺化數據。這些迷你圖表可以是折線圖、柱狀圖或其他類型,並且可以在單個儲存格中顯示。本教學將向你展示如何使用 SPARKLINE 函數來創建迷你圖表,讓你能夠快速而直觀地理解你的數據。
Thumbnail
在 Google Sheets 中,SPARKLINE 函數提供了一個方便的方法來創建迷你圖表,讓你可以輕鬆地視覺化數據。這些迷你圖表可以是折線圖、柱狀圖或其他類型,並且可以在單個儲存格中顯示。本教學將向你展示如何使用 SPARKLINE 函數來創建迷你圖表,讓你能夠快速而直觀地理解你的數據。
Thumbnail
新的一年來臨,我期望重新檢視我的財務報表,讓自己更輕鬆的管理財務。我希望有一張預算編列表,然後利用這些表格來審視我的預算與到時候實際的收支狀況。我發現許多財務相關的apps都無法滿足我的需求。所以,我親手製作了一個包含預算和實際支出的表格,最後將這兩者合併成一個統一的表格。
Thumbnail
新的一年來臨,我期望重新檢視我的財務報表,讓自己更輕鬆的管理財務。我希望有一張預算編列表,然後利用這些表格來審視我的預算與到時候實際的收支狀況。我發現許多財務相關的apps都無法滿足我的需求。所以,我親手製作了一個包含預算和實際支出的表格,最後將這兩者合併成一個統一的表格。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
這是一場修復文化與重建精神的儀式,觀眾不需要完全看懂《遊林驚夢:巧遇Hagay》,但你能感受心與土地團聚的渴望,也不急著在此處釐清或定義什麼,但你的在場感受,就是一條線索,關於如何找著自己的路徑、自己的聲音。
Thumbnail
想要在 Google Sheet 中自動獲取台灣的天氣資訊?你可以使用 Google Apps Script,這是 Google 提供的一個程式化工具,能夠在 Google Sheet 中執行自訂的腳本,讓你自動從中央氣象局獲取天氣資訊並將其寫入你指定的 Google Sheet。
Thumbnail
想要在 Google Sheet 中自動獲取台灣的天氣資訊?你可以使用 Google Apps Script,這是 Google 提供的一個程式化工具,能夠在 Google Sheet 中執行自訂的腳本,讓你自動從中央氣象局獲取天氣資訊並將其寫入你指定的 Google Sheet。
Thumbnail
高效生活,幫助你找回更多自己的時間 哈囉,這裡是 AL 的 Googlesheet 學習筆記 本系列文章,會帶你認識各種函數,學習並應用於日常,加速生活與工作、提升效率 今天要介紹的函數是 ARRAYFORMULA
Thumbnail
高效生活,幫助你找回更多自己的時間 哈囉,這裡是 AL 的 Googlesheet 學習筆記 本系列文章,會帶你認識各種函數,學習並應用於日常,加速生活與工作、提升效率 今天要介紹的函數是 ARRAYFORMULA
Thumbnail
在E70的影片中,Meiko跟大家分享Excel版本的十字光標設定,收到很多同學的回饋,最近有同學提到,也想在Google Sheets上執行光標標註的功能,Meiko原以為蠻簡單的,後來實操之後發現並不容易,於是請教了AI,意外的設計出一個光標控制面板,我覺得很方便,分享給大家~
Thumbnail
在E70的影片中,Meiko跟大家分享Excel版本的十字光標設定,收到很多同學的回饋,最近有同學提到,也想在Google Sheets上執行光標標註的功能,Meiko原以為蠻簡單的,後來實操之後發現並不容易,於是請教了AI,意外的設計出一個光標控制面板,我覺得很方便,分享給大家~
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News