在 Google 試算表中批次新增並命名工作表,最快的方法是透過「Apps Script」。只要在儲存格列出想要的名稱,貼上阿湯提供的專屬程式碼並點擊執行,就能瞬間自動建立所有分頁。
為什麼 Google 試算表需要用 Script 批次新增工作表?
之前我分享了這篇「Excel 教學 – 批次新增「工作表」的方法,按照自訂名稱快速增加」,之後果然就有人來問了,如果想要在 Google 試算表也批次新增工作表有辦法嗎?在 Excel 裡你可以透過我提供的方式或用 VBA,而 Google 試算表呢?其實也沒有很難,雖然沒有像 Excel 有樞紐分析表的方式可以用,就換來用 Google Script 的方式吧,往下來和大家分享。
準備工作:建立要新增的工作表名稱清單
在開始套用自動化程式之前,我們要先告訴 Google 試算表「你想建立哪些名稱的工作表」。首先,我們在其中一個工作表裡,先將要新增的工作表名稱打好。
以我的例子來說,我把要新增的 12 個月份名稱放在 A1:A12 的儲存格範圍內。你可以放在別的欄位或範圍,這對後續操作沒有影響。接著,請將這個來源工作表改個好輸入的名字,例如我把它命名為「命名用」,這樣等一下在程式碼裡比較好指定。

開啟 Apps Script 並貼上自動化程式碼
名稱清單準備好之後,我們就要進入重頭戲了。請點擊試算表上方選單的「擴充功能」,接著點選裡面的「Apps Script」。

進入這個寫程式的後台畫面後,大家不要太緊張,我們不需要從頭自己寫。首先,將畫面上預設看到的程式碼全選後,通通刪除掉。

接下來,請直接複製並貼上我下方提供的這段程式碼:
function createSheetsBasedOnRange() {
varss = SpreadsheetApp.getActiveSpreadsheet();
varsheet = ss.getSheetByName('命名用'); // 指定來源工作表
varrangeValues = sheet.getRange('A1:A12').getValues(); // 獲取 A1:A12 範圍的值
for (vari = 0; i < rangeValues.length; i++) {
varsheetName = rangeValues[i][0]; // 指定新工作表的名字
if(sheetName && !ss.getSheetByName(sheetName)) { // 檢查名字是否存在,並且工作表是否已存在
ss.insertSheet(sheetName);
}}}
貼上之後,有兩個地方你需要根據自己的情況來修改,你可以對照下圖看一下:
- 工作表名稱:也就是程式碼裡的
ss.getSheetByName('命名用'),如果你的來源工作表叫別的名字,請把單引號裡的字改掉。 - 指定命名的範圍:也就是
sheet.getRange('A1:A12'),不一定要 12 個,如果你有 15 個名稱是放在 A1:A15,那就把範圍改成 A1:A15 就好。

執行程式與授權權限設定
程式碼修改確認無誤後,先點擊畫面上方工具列的「儲存專案」(磁碟機圖示),然後按下旁邊的「執行」按鈕。如果是第一次執行這個腳本,Google 會跳出警告視窗,需要你授權相關的存取權限。不用擔心,跟著畫面提示點擊「審查權限」、選擇你的 Google 帳號,並允許執行就可以了。

授權完成後程式就會開始跑,執行成功的話,會在畫面下方顯示「執行完畢」的紀錄。

接下來回到原本的 Google 試算表畫面看,就大功告成囉!系統已經一次幫你新增好指定命名的所有工作表了。就算你完全不會寫 Script 程式碼也沒關係,只要照著阿湯提供的步驟,直接複製貼上就能輕鬆完成這項自動化工作囉!

常見問題
Google 試算表可以像 Excel 一樣用樞紐分析表批次新增工作表嗎?
不行,Google 試算表目前沒有類似 Excel 透過樞紐分析表篩選頁面來新增工作表的功能,但可以透過內建的 Apps Script 程式碼來達成相同的批次新增效果。
如果我要新增的工作表名稱有 20 個,程式碼要怎麼改?
請將程式碼中的 getRange('A1:A12') 範圍修改為實際的資料範圍,例如有 20 個名稱放在 A 欄,就改為 getRange('A1:A20') 即可。
第一次執行 Apps Script 跳出需要授權的警告怎麼辦?
這是 Google 的安全機制,只要點擊「審查權限」,選擇你的 Google 帳號並點擊「允許」,授權完成後程式就能順利執行。
(本文於 2026 年 10 月更新:補充步驟說明與常見問題)




