Skip to content

Instantly share code, notes, and snippets.

  • Save pulipulichen/95703dc1aa9133e55542b982b9d71b92 to your computer and use it in GitHub Desktop.
Save pulipulichen/95703dc1aa9133e55542b982b9d71b92 to your computer and use it in GitHub Desktop.
Excel,Programming,Talk
看看網頁版全文 ⇨ 雜談:從不懂到改寫別人的VBA不難,但對心臟不太好 : TALK: From Novice to VBA Rewriter: An Easy but Stressful Journey
https://blog.pulipuli.info/2025/05/talk-from-novice-to-vba-rewriter-an-easy-but-stressful-journey.html
最近幫別人改寫老舊Excel上的VBA,讓使用者能直接從輸入資料到彙整成可以列印的格式,而避免大量的複製、貼上操作。
寫是寫完了,但內心真是五味雜陳。
----
# 不是每個Excel版本都能順利執行VBA / Not Every Excel Version Can Run VBA Smoothly。
前情提要一下。
目前在單位裡面使用的Excel以及裡面的VBA,並不是像你各位用的華麗Office 365的版本 (還可以跑Python in Excel!),而是老舊的「.xls」格式。
是的,即使是到了2025年,大部分非資訊人員的單位仍會保持著「能跑就好」的心態,在特定電腦上運作特定版本的Office,以及使用特定版本Excel檔案裡面的VBA。
這點對我這個Linux的使用者來說似乎有點棘手。
但其實我早在VirtualBox裡面常備了幾個Windows版本,除了為了運作特定只能在Windows下執行的軟體之外,也是為了在製作教學的時候配合一下Windows的環境。
不過實際上把Excel放到虛擬機器裡面之後,我發現事情不太妙。
新版本的Excel執行這個舊版.xls檔案裡的VBA錯誤百出。
這似乎是Excel安全性層級的問題,但我有點摸不著頭緒。
預設我逐漸將Excel的版本一路往下降,降到Excel 2003,並降低了安全性層級,這才讓.xls的VBA能夠正常運作。
嘗試到一半的時候,我曾經詢問檔案擁有者他使用的Windows作業系統跟Excel版本,但對方似乎無法理解Excel的「版本」差異。
其實大部分的使用者都是如此,公司給你這臺電腦、裝著這個版本的Excel,員工用就是了,不會在意什麼版本問題。
----
# 亂碼問題 / Garbled Characters。
然而版本的問題還不只是Excel本身,另一個問題是我使用的Windows版本。
由於我長年使用Linux的緣故,通常系統語言我預設都會選用英文,以減少中文亂碼的問題。
但這次在修改Excel時,工作表的中文雖然可以正常顯示,但是在VBA裡面卻全部變成了亂碼。
https://home.gamer.com.tw/creationDetail.php?sn=3286189。
----
繼續閱讀 ⇨ 雜談:從不懂到改寫別人的VBA不難,但對心臟不太好 : TALK: From Novice to VBA Rewriter: An Easy but Stressful Journey
https://blog.pulipuli.info/2025/05/talk-from-novice-to-vba-rewriter-an-easy-but-stressful-journey.html
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment