2025年6月27日 星期五

Excel VBA 教學:自動開啟 IE 網頁並填入表單資料,告別重複輸入的惡夢!

前言

您是否經常需要填寫固定的網路表單?每天面對大量重複的複製、貼上動作,不僅耗時費力,也容易出錯。一位網友就提出了這樣的困擾:「如果一個網頁有很多欄位要填寫,除了逐一複製貼上,有沒有更快速的輸入方式?」

為了解決這個常見的痛點,我們將介紹一個實用的 Excel VBA 工具,它能自動開啟指定的 IE 網頁,並將 Excel 表格中的資料瞬間填入對應的網頁欄位中,甚至能自動按下送出按鈕,徹底解放您的雙手!

操作步驟

讓我們透過一個實際範例,一步步學習如何使用這個強大的工具。

1. 準備測試環境

首先,我們需要一個用於測試的網頁表單和範例 Excel 檔案。

要讓 Excel 知道該把資料填到哪個欄位,我們必須先找出網頁上每個輸入欄位的「內部名稱」。

  1. 在測試網頁上點擊滑鼠右鍵,選擇「檢視網頁原始碼」(或使用快捷鍵 Ctrl + U)。

  2. 在原始碼中,找到 <form> 標籤內的 <input> 元素。我們要關注的是 name 這個屬性。

    Generated html
    <form method="post">
    ...
    <!-- 文字輸入框 -->
    使用者名稱: <input type="text" id="username" name="username">
    使用者年齡: <input type="text" id="userage" name="userage">
    
    <!-- 單選按鈕 -->
    使用者性別:
    <input type="radio" name="sex" value="男"><input type="radio" name="sex" value="女"><!-- 多選框 (注意名稱後的 []) -->
    興趣:
    <input type="checkbox" name="interest[]" value="吃"><input type="checkbox" name="interest[]" value="喝"><input type="checkbox" name="interest[]" value="玩"><input type="checkbox" name="interest[]" value="樂"><!-- 送出按鈕 -->
    <input type="submit" name="ok" value="送出">
    </form>

    Html

    從上面我們可以看到:

    • 使用者名稱的 name 是 username

    • 使用者年齡的 name 是 userage

    • 性別的 name 是 sex

    • 興趣的 name 是 interest[] (中括號 [] 表示這是一個陣列,用於接收多個值)。

    • 送出按鈕的 name 是 ok

3. 設定並執行 Excel 工具

打開下載的 excel_open_ie.xlsm 檔案,如果上方出現安全性警告,請點擊「啟用內容」。

您會看到一個已經設定好的表格,這就是我們控制自動填寫的指令中心。

  • 網址 (B1): 填入您要自動化的目標網址。

  • 送出按鈕名稱 (B2): 填入網頁原始碼中,送出按鈕的 name 屬性值(在此範例中為 ok)。

  • 參數名稱 (A欄): 依序填入您從原始碼中找到的各個欄位 name

  • 填入值 (B欄): 填入您希望對應填入的資料。

    • 文字欄位 ( 直接輸入文字或數字。

    • 單選按鈕 ( 輸入您要選擇的選項 value 值(例如 "男")。

    • 多選框 ( 若要選擇多個,請用半形逗號 , 隔開(例如 "吃,喝")。

設定完成後,點擊「自動開啟IE並填入值」按鈕。

程式會立即啟動 IE 瀏覽器,打開指定網址,將 B 欄的資料快速填入對應的欄位,並點擊送出按鈕。您會看到網頁顯示出您剛剛透過 Excel 自動輸入的結果。

進階技巧:只填入資料,不自動送出

有些網頁可能包含「圖形驗證碼 (CAPTCHA)」,需要使用者手動輸入。在這種情況下,我們希望程式只幫我們填好其他固定資料,然後讓我們手動輸入驗證碼再送出。

操作非常簡單:

  1. 在 Excel 的 B2 儲存格,將送出按鈕的名稱 (,使其變為空白。

  2. 再次點擊「自動開啟IE並填入值」按鈕。

這次,程式一樣會打開網頁並填入所有資料,但它會停在填完的畫面,不會自動送出。這時您就可以從容地輸入驗證碼,或進行最後的檢查,再手動按下「送出」按鈕。

結語

透過這個簡單的 Excel VBA 工具,您可以將繁瑣的網頁表單填寫工作自動化,大幅提升工作效率並減少人為錯誤。不論是每日報表提交、資料登錄還是活動報名,這個技巧都能派上用場。趕快下載範例檔案,親自體驗看看自動化的便利吧!



2025年6月26日 星期四

Google Sheets 教學:如何合併多個工作表?使用 FILTER 與陣列 {} 動態匯整資料

在日常工作或數據管理中,您是否經常需要將 Google Sheets 中多個不同分頁(工作表)的資料,手動複製貼上到一個總表中呢?這個過程不僅耗時,而且當來源資料更新時,您還得重複操作一次,非常麻煩。

今天,我們將介紹一個強大且一勞永逸的方法,利用 FILTER 函數與陣列常值 {} 語法,輕鬆建立一個「動態」的合併總表。任何來源工作表的變動,都會即時自動更新到總表中!

核心概念:認識兩個關鍵工具

在開始實作前,讓我們先了解這個方法背後的兩個主要功臣。

1. 陣列常值 (Array Literals) {}

在 Google Sheets 中,大括號 {} 可以讓我們手動建立一個陣列。它的分隔符號決定了資料的排列方式:

  • 逗號 :將資料「水平」排列。

    • 例如,在儲存格中輸入 = {1, 2},您會看到 1 和 2 分別顯示在左右相鄰的兩個儲存格中。

  • 分號 :將資料「垂直」排列。

    • 例如,輸入 = {1; 2},您會看到 1 和 2 分別顯示在上下相鄰的兩個儲存格中。

這次要合併工作表,我們需要的就是「分號 

2. FILTER 函數

FILTER 函數可以根據您設定的條件,從一個範圍中篩選出符合條件的資料。它的基本語法是:
FILTER(範圍, 條件1, [條件2, ...])

在這次的應用中,我們主要會用它來抓取整個工作表的資料,並設定一個條件來排除空白列,例如:FILTER('工作表A'!A:C, '工作表A'!A:A <> ""),意思是「篩選出『工作表A』中 A 到 C 欄的資料,條件是 A 欄的內容不為空值」。

實作步驟:一步步建立合併總表

假設我們有三個銷售資料工作表:「員林店」、「台中店」和「網路」,我們想將它們合併到一個名為「總表」的新工作表中。

步驟一:篩選第一個工作表 (包含標題)

在「總表」的 A1 儲存格中,我們先使用 FILTER 函數抓取第一個工作表「員林店」的完整資料,包含標題列。

=FILTER('員林店'!A1:C, '員林店'!A1:A <> "")

這會將「員林店」所有非空的資料列都帶過來。

步驟二:使用陣列語法合併後續工作表

接下來,我們要將「台中店」和「網路」的資料垂直堆疊在下方。這裡就要用到陣列語法 {} 和分號 ;

關鍵點: 為了避免重複出現標題列,我們從第二個工作表開始,篩選範圍要從第二列 (A2:C) 開始。

完整的公式如下:

Generated excel

={
  FILTER('員林店'!A1:C, '員林店'!A1:A <> ""); 
  FILTER('台中店'!A2:C, '台中店'!A2:A <> ""); 
  FILTER('網路'!A2:C, '網路'!A2:A <> "")
}

公式解析:

  1. 最外層的 {...} 表示這是一個陣列公式。

  2. FILTER('員林店'!A1:C, ...):抓取第一個表的資料(A1開始,含標題)。

  3. ;:垂直堆疊符號,告訴 Google Sheets 將下一個結果放在下方。

  4. FILTER('台中店'!A2:C, ...):抓取第二個表的資料(A2開始,不含標題)。

  5. ;:再次垂直堆疊。

  6. FILTER('網路'!A2:C, ...):抓取第三個表的資料(A2開始,不含標題)。

將此公式輸入到「總表」的 A1 儲存格並按下 Enter,您會看到所有工作表的資料都完美地合併在一起了!

此方法的優點

  • 動態更新:當您在「員林店」、「台中店」或「網路」任何一個工作表中新增、刪除或修改資料時,「總表」會自動同步更新,無需任何手動操作。

  • 效率極高:設定一次公式即可,未來不用再為合併資料而煩惱。

  • 保持來源資料完整性:總表僅用於查閱與匯總,不會影響到各個來源工作表的原始資料。

範例檔案與參考資料

為了方便您練習,您可以直接點擊下方連結,建立一份您自己的範例檔案副本來操作。

下次需要合併多個工作表時,不妨試試這個強大的 FILTER + {} 組合,讓您的數據處理能力更上一層樓!



【Google試算表教學】一步驟解決!徹底防止檢視者下載、複製,保護你隱藏的工作表

您是否也以為只要將Google試算表中的工作表「隱藏」起來,分享出去後別人就看不到了呢?最近有網友反應,他明明已經將含有原始資料的工作表隱藏了,但分享給同事後,對方卻說依然能看到隱藏的內容。 經過測試後,我們發現了一個許多人都可能忽略的資安漏洞: 即使你隱藏了工作表,只要檢視者有...