有什麼辦法能在 EXCEL VBA 中繼續使用正則表達式呢?

John 0 信譽點數
2025-09-10T04:50:21.1866667+00:00

最近的這個問題使我在使用正則表達式出現錯誤(好像是因為用到了Library中的VBScript),又看到VBScript已經被棄用了,想請問有什麼方式可以繼續再VBA中使用正則表達式嗎?

https://nolongerset.com/bug-assertion-failed-regexp/error

Microsoft 365 與 Office | Excel | 其他 | Windows
0 則留言 沒有留言

11 個回答

排序依據: 最新
  1. 子璉 鄭 0 信譽點數
    2025-09-11T07:00:12.1666667+00:00

    用你提供的測試網址試:
    https://nolongerset.com/bug-assertion-failed-regexp/
    程式碼剪貼進 Excel VBA 測試正常

    Excel 為 2508 版使用者的影像

    使用者的影像

    此回答有幫助嗎?

    0 則留言 沒有留言

  2. John 0 信譽點數
    2025-09-10T13:46:08.74+00:00

    @熱情熄 心冷

    您好,謝謝您的回覆,

    Set objRegExp = CreateObject("VBScript.RegExp")

    測試過後還是得到錯誤訊息,如下:

    error3

    此回答有幫助嗎?

    0 則留言 沒有留言

  3. John 0 信譽點數
    2025-09-10T13:43:21.3466667+00:00

    @IGYQ 您好,謝謝你的回覆

    CreateObject(“System.Text.RegularExpressions.Regex”)

    但這段執行後會報錯誤,如下:

    error2

    此回答有幫助嗎?

    0 則留言 沒有留言

  4. IGYQ 22,340 信譽點數 獨立顧問
    2025-09-10T13:07:40.8466667+00:00

    是的,没错。运行时 COM 类 (VBScript.RegExp) 仍存在于系统中,因此 CreateObject(“VBScript.RegExp”) 仍然有效。这可能是 Microsoft 在未来的 Windows 版本中完全删除 VBScript 之前的宽限期。

    此回答有幫助嗎?

    0 則留言 沒有留言

  5. 熱情熄 心冷 5,575 信譽點數
    2025-09-10T12:29:56.76+00:00

    看起來是 VBScript.dll 的參照物件功能拿掉,但還是可以用。

    測試下列程式碼做延後連結是可以用:

    Set objRegExp = CreateObject("VBScript.RegExp")

    此回答有幫助嗎?


您的回答

答案可由問題作者標示為「已接受」,而由仲裁者標示為「推薦」,這可協助使用者知道答案解決了作者的問題。