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的沙龍
5會員
69內容數
分享知識
你可能也想看
Thumbnail
我每週都會為自己設計一趟小旅行,像是給日常的一個深呼吸。準備著簡單的行李,在導航上設定好今天想去的地方,播放一張剛好符合心情的歌單,一場逃離日常的小旅行就此展開。 說走就走的自由很浪漫,但背後的現實是,從加油、路途中補給、到抵達目的地的小花費,每一筆都需要精打細算,才能不讓放鬆變成負擔。好在有玉山
Thumbnail
我每週都會為自己設計一趟小旅行,像是給日常的一個深呼吸。準備著簡單的行李,在導航上設定好今天想去的地方,播放一張剛好符合心情的歌單,一場逃離日常的小旅行就此展開。 說走就走的自由很浪漫,但背後的現實是,從加油、路途中補給、到抵達目的地的小花費,每一筆都需要精打細算,才能不讓放鬆變成負擔。好在有玉山
Thumbnail
本文介紹玉山銀行推出的玉山 Unicard,是一張非常符合「小資族、學生、上班族都好上手」的高回饋信用卡!三種回饋方案自由切換,行動支付、百貨、旅遊、百大指定通路全面涵蓋,新戶最高享 7.5% 回饋。回饋透明、操作簡單,非常推薦學生、小資族與上班族。
Thumbnail
本文介紹玉山銀行推出的玉山 Unicard,是一張非常符合「小資族、學生、上班族都好上手」的高回饋信用卡!三種回饋方案自由切換,行動支付、百貨、旅遊、百大指定通路全面涵蓋,新戶最高享 7.5% 回饋。回饋透明、操作簡單,非常推薦學生、小資族與上班族。
Thumbnail
信用卡如今已是現代人日常消費的必需品。回顧其誕生,竟源於一段用餐忘記帶錢的窘境。本文將帶您瞭解信用卡的故事,並介紹「玉山Unicard」,一張涵蓋百大通路、提供彈性回饋的信用卡,尤其適合追求方便與高回饋的消費者。文章將分享誠品生活、全盈+PAY等實際使用情境,並提供新戶申辦優惠資訊。
Thumbnail
信用卡如今已是現代人日常消費的必需品。回顧其誕生,竟源於一段用餐忘記帶錢的窘境。本文將帶您瞭解信用卡的故事,並介紹「玉山Unicard」,一張涵蓋百大通路、提供彈性回饋的信用卡,尤其適合追求方便與高回饋的消費者。文章將分享誠品生活、全盈+PAY等實際使用情境,並提供新戶申辦優惠資訊。
Thumbnail
玉山銀行新推出的Unicard信用卡你發現了嗎?主打可透過玉山Wallet App,每月自由切換簡單選、任意選及UP選三種方案,讓你依照消費習慣擁有不同的回饋方案。其中我自己很喜歡它百大指定消費中的Line Pay行動支付,能讓我以最簡單的方式獲得最高的回饋!同時文中更分享我實測的眉角,快來看下去!
Thumbnail
玉山銀行新推出的Unicard信用卡你發現了嗎?主打可透過玉山Wallet App,每月自由切換簡單選、任意選及UP選三種方案,讓你依照消費習慣擁有不同的回饋方案。其中我自己很喜歡它百大指定消費中的Line Pay行動支付,能讓我以最簡單的方式獲得最高的回饋!同時文中更分享我實測的眉角,快來看下去!
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