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

Josh-avatar-img
發佈於學習
更新 發佈閱讀 7 分鐘
raw-image

在管理專案進度或待辦清單時,我們常希望「填入日期」後,該列資料能自動移到「已完成」的頁籤,保持畫面清爽。雖然內建公式可以做到資料同步,但要達成「搬移」且「保留格式」,就需要動用 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的沙龍
10會員
90內容數
分享知識
你可能也想看
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
債券投資,不只是高資產族群的遊戲 在傳統的投資觀念中,海外債券(Overseas Bonds)常被貼上「高資產族群專屬」的標籤。過去動輒 1 萬甚至 10 萬美元的最低申購門檻,讓許多想尋求穩定配息的小資族望而卻步。 然而,在股市波動劇烈的環境下,尋求穩定的美元現金流與被動收入成為許多投資人
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
透過川普的近期債券交易揭露,探討債券作為資產配置中「穩定磐石」的重要性。文章分析降息對債券的潛在影響,以及股神巴菲特的操作策略。並介紹玉山證券「小額債」平臺,如何讓小資族也能低門檻參與海外債券市場,實現「低門檻、低波動、固定收益」的務實投資方式。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
解析「債券」如何成為資產配置中的穩定錨,提供低風險高回報的投資選項。 藉由玉山證券的低門檻債券服務,投資者可輕鬆入手,平衡風險並穩定財務。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
相較於波動較大的股票,債券能提供固定現金流,而玉山證券推出的小額債,更以1000 美元的低門檻,讓學生與新手也能參與全球優質企業債投資。玉山E-Trader平台即時報價、條件式篩選與清楚的交易流程等特色,大幅降低投資難度,對於希望分散風險、建立穩定現金流的人來說,玉山小額債是一個值得嘗試的理財起點。
Thumbnail
不會寫程式也能自動化!教你用 Google Sheet 搭配 Google App Script,打造一鍵寄信與報表自動化流程。從需求收斂模板、指派按鈕到錯誤排除,完整教學讓你輕鬆召喚辦公小機器人,告別重複瑣事!
Thumbnail
不會寫程式也能自動化!教你用 Google Sheet 搭配 Google App Script,打造一鍵寄信與報表自動化流程。從需求收斂模板、指派按鈕到錯誤排除,完整教學讓你輕鬆召喚辦公小機器人,告別重複瑣事!
Thumbnail
最近想在家中儲備防災物資,以及發現有時候零食、化妝品,沒注意很容易放到過期,所以想把保存期限存到google 日曆,讓它時間接近時跳出提醒。但感覺自己建日曆活動很麻煩,於是就用 Google 表單、試算表和 Apps Script 弄了一個自動將食品保存期限新增到 Google 日曆的工具
Thumbnail
最近想在家中儲備防災物資,以及發現有時候零食、化妝品,沒注意很容易放到過期,所以想把保存期限存到google 日曆,讓它時間接近時跳出提醒。但感覺自己建日曆活動很麻煩,於是就用 Google 表單、試算表和 Apps Script 弄了一個自動將食品保存期限新增到 Google 日曆的工具
Thumbnail
透過整合Google Sheets、Notion、Google Contacts、Google Calendar及Google Docs等工具,自動化報價及日曆事件的流程,大幅提升工作效率,減少人為錯誤,釋放更多時間專注於業務發展。此自動化方案適用於自由工作者和小企業主。
Thumbnail
透過整合Google Sheets、Notion、Google Contacts、Google Calendar及Google Docs等工具,自動化報價及日曆事件的流程,大幅提升工作效率,減少人為錯誤,釋放更多時間專注於業務發展。此自動化方案適用於自由工作者和小企業主。
Thumbnail
在E70的影片中,Meiko跟大家分享Excel版本的十字光標設定,收到很多同學的回饋,最近有同學提到,也想在Google Sheets上執行光標標註的功能,Meiko原以為蠻簡單的,後來實操之後發現並不容易,於是請教了AI,意外的設計出一個光標控制面板,我覺得很方便,分享給大家~
Thumbnail
在E70的影片中,Meiko跟大家分享Excel版本的十字光標設定,收到很多同學的回饋,最近有同學提到,也想在Google Sheets上執行光標標註的功能,Meiko原以為蠻簡單的,後來實操之後發現並不容易,於是請教了AI,意外的設計出一個光標控制面板,我覺得很方便,分享給大家~
Thumbnail
在 Google Sheets 中,SPARKLINE 函數提供了一個方便的方法來創建迷你圖表,讓你可以輕鬆地視覺化數據。這些迷你圖表可以是折線圖、柱狀圖或其他類型,並且可以在單個儲存格中顯示。本教學將向你展示如何使用 SPARKLINE 函數來創建迷你圖表,讓你能夠快速而直觀地理解你的數據。
Thumbnail
在 Google Sheets 中,SPARKLINE 函數提供了一個方便的方法來創建迷你圖表,讓你可以輕鬆地視覺化數據。這些迷你圖表可以是折線圖、柱狀圖或其他類型,並且可以在單個儲存格中顯示。本教學將向你展示如何使用 SPARKLINE 函數來創建迷你圖表,讓你能夠快速而直觀地理解你的數據。
Thumbnail
新的一年來臨,我期望重新檢視我的財務報表,讓自己更輕鬆的管理財務。我希望有一張預算編列表,然後利用這些表格來審視我的預算與到時候實際的收支狀況。我發現許多財務相關的apps都無法滿足我的需求。所以,我親手製作了一個包含預算和實際支出的表格,最後將這兩者合併成一個統一的表格。
Thumbnail
新的一年來臨,我期望重新檢視我的財務報表,讓自己更輕鬆的管理財務。我希望有一張預算編列表,然後利用這些表格來審視我的預算與到時候實際的收支狀況。我發現許多財務相關的apps都無法滿足我的需求。所以,我親手製作了一個包含預算和實際支出的表格,最後將這兩者合併成一個統一的表格。
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
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News