Revision history and IPFS entry, back to latest
鑫大叔
IPFS What is this

Content Hash

怎麽用Excel VBA實現”複製貼上“(下),鑫大叔Excel VBA第二期

鑫大叔
·
·
這期主要介紹While ... Wend循環結構的用法、如何在Excel功能區加入開發人員標籤和常用功能、如何讓你不用每次開啟帶有巨集的Excel都要點“啟用內容”。備註:教學文推薦用電腦閱讀。

🔷 介紹 🔷

沒看上一期的可能不清楚VBA是什麽,簡單來説是一種主要用於Microsoft Office的編程語言,適合沒學過編程的人用(因爲容易)。這裏主要討論Excel用的VBA。更多介紹請去看第一期



🔷 VBA循環結構 🔷

循環結構就是用來重複執行同一段代碼,重複次數通過特定條件控制。

VBA主要有三種循環結構,分別爲For、While和Loop,每種又有幾種小變化,剛開始會一種就夠用了。這次範例用While ... Wend。

範例代碼如下:

Sub Macro2()
    r = 0
    c = 2
    
    While r < 100
        r = r + 1
    
        Sheets("B").Cells(r, c) = r
        Sheets("C").Cells(r, c + 1) = Sheets("B").Cells(r, c)
    Wend
End Sub


🔷 VBA代碼解説(範例1)🔷

❇️ 變數

    r = 0
    c = 2
  • 這裏“r”和“c“是變數,我們這裏定義他們一個等於數字0,一個等於數字2
  • 變數(Variable):程式在處理資料的時候常常會用到變數,主要用來暫存資料,變數代表的數據會經常變動,故名“變數”。
  • 變數命名規則:第一個字必須是英文字母或中文字,之後可以隨意使用中文、英文、數字、或底線符號(“_”),簡單來說就是,如果跑程式出錯,改就是了。

❇️ While ... Wend

    While r < 100
    Wend
  • 上面提到的While ... Wend用法之一,”r < 100“就是它的循環條件。用人話來説就是只要r小於100,這個宏就會一直重複的從While跑到Wend,當然也會執行在它們之間的代碼,直到你受不了强制關掉爲止。

❇️ 算數運算子中的加法

r = r + 1
  • 不知道你還記得小時候學的加減乘除嗎?啥,你忘記了?慢走不送!!!別打我,開個玩笑而已…… 我們前面定義r=0,所以r+1就是1,下一次再加1就是2。
  • 好吧,那這行有啥用處呢?還記得上面提到的While ...... Wend嗎?只要r小於100就會一直循環,所以爲了不讓他循環天荒地老,我們每循環一次就給r加1,這樣循環99次r就會等於100,循環就會因爲不符合條件停止。
  • 算數運算子(Operator)都有哪些:加法(+)、減法(-)、乘法(*)、除法(/)、整數除法(\)、餘數(Mod)、次方(^)。後續會講解有用到的部分。

❇️ 工作表、存儲格的應用

        Sheets("B").Cells(r, c) = r
        Sheets("C").Cells(r, c + 1) = Sheets("B").Cells(r, c)
  • 這兩行是在上一期的的基礎上修改,差別只在於r和c。所以在開始While ... Wend之前,r是1,c是2。
  • 因為這兩行是放在While ... Wend之間,所以變數r因為前一行的r=r+1一直改變,因此第1行“Sheets("B").Cells(r, c) = r”代表:工作表B的C列從第1行到99行,每行都會填上與行數相對應的數字。
  • 第2行“Sheets("C").Cells(r, c + 1) = Sheets("B").Cells(r, c)”代表:工作表C會複製工作表B的內容,只不過工作表B在B列的內容會被複製到工作表C的C列。
  • 可能有點混亂,但只要實際跑一遍就會理解了

🔷 本期範例下載 🔷

點我下載,檔案打開後注意下是不是有下圖的警告,這是要使用者確認這個巨集是否可信,以免執行了有問題的巨集。點擊“啟用內容”就可以正常使用了。

初始Excel安全設定會自動關閉巨集,所以需要點擊“啟用內容”解鎖


🔷 在功能區加入開發人員標籤 🔷

這個標籤不是必須,但是有了方便很多。例如可以錄製巨集,也不用一定要用快捷鍵(alt + F11)開啟VB編輯器了。

❇️ 整個開啟流程:

  • 檔案 >> 其他... >> 選項 >> 自訂功能區 >> 勾選 開發人員

❇️ 第一步,看看你的Excel是不是已經有“開發人員”標籤了,有可以跳過這個小單元,沒有就點“檔案”。

看看你的Excel是不是已經有“開發人員”標籤了,沒有就點“檔案”

❇️ 第二步,點擊“其他” >> “選項”,開啟Excel選項。

開啟Excel選項

❇️ 第三步,點擊“自訂功能區”,勾選”開發人員“,再點“確定”,大功告成。

Excel選項


🔷 開發人員標籤下有哪些常用的功能?🔷

大叔認為比較常用的功能(開發人員標籤)
  • Visual Basic:開啟VB編輯器,和快速鍵(Alt + F11)一樣效果
  • 巨集:叫出巨集對話框,做進一步的設定,後續會繼續介紹這個功能。
  • 錄製巨集:編程好幫手,用它錄出來的程式碼不好用,卻是極好的範本,修改一下就能直接套用到你的巨集裡。個人覺得這個功能在學習VBA初期,除了讓你覺得好玩,用處不大,所以等後續才解說如何使用和如何修改錄製出來的程式碼。
  • 巨集安全性:上期提到每次打開帶有巨集的檔案都會有如下圖的警告,這是因為Excel初始安全設定,如果不想要每次都要多點一下“啟用內容”,就需要在這裡修改安全性。
初始Excel安全設定會自動關閉巨集


🔷 如何讓你不用每次開啟帶有巨集的Excel都要點“啟用內容” 🔷

❇️ 第一步,在“開發人員”標籤下點擊“巨集安全性”叫出巨集設定對話框。

❇️ 第二步,選擇“啟用所有巨集”,並點擊“確定”。

如何設定成默認自動啟動所有巨集


🔷 下期預告 🔷

  • 目前有人要求資料庫中提取數據,待我進一步了解需求再來準備~




小測試,請無視我

CC BY-NC-ND 2.0