一、認識 宏 & for循環 & If 邏輯判斷


  • Excel中宏的使用
  1. 錄制宏的工具在哪里
  2. 錄制並執行宏 使用按鈕
  3. 錄制宏時,若先點錄制,再選單元格,會導致錄制代碼鎖死該單元格(絕對引用);先選定單元格,再在點錄制后點“使用相對引用”,再選單元格,錄制的就是對與原單元格相對位置的單元格的操作,這就是相對引用:並不鎖死某單元格,而是與原單元格的一定位置的偏移。
  4. 使用“DEMO-2-錄制相對引用的宏”,可利用相對引用,將所有周一(或任意周幾)的單元格塗色。
  5. 錄制的宏在哪里?看vba環境,初步認識宏代碼。理解sub過程的基本語法規則。將錄制的宏復制出來,理解宏代碼的作用。
  6. 但上述過程如果要重復做數十次,意味着點數十次宏,也很麻煩。理解for循環,以及定義數據類型。
  7. 宏工具制作工資條:文件“DEMO-2-錄制相對引用的宏”的data表,需將表頭插入每一條記錄上方。
  8. 思考:將表頭復制后,每隔2行粘貼,重復若干次,可否復制成宏后自動完成?
  9. 操作:選中表頭-->錄制宏-->使用相對引用-->插入復制的單元格-->停止錄制,嘗試運行宏。
  10. 進一步簡化:使用for循環,考慮循環次數(記錄條數-1)
  11. 優化:考慮若不小心未將鼠標放在表頭上,執行了宏,將出現不符預期的結果。因此,應考慮讓宏運行時,無論鼠標在哪里,都默認先選中表頭行。錄制選中表頭行的宏。
         思考:新錄制的代碼放在原代碼的什么位置?
  12. 進一步優化:添加按鈕運行宏,觀察效果。設置控件格式-->屬性-->大小、位置均固定
  13. 補充:宏安全性要設置為啟用。
  • 練習題

  嘗試制作一個按鈕,使得剛剛生成的工資條狀態回復其原始狀態。

  • Range單元格對象

 

  1.  引入range單元格對象,可回避相對引用的問題。了解如何通過range表達式對某單元格賦值;
  2. 若想對a1-a100單元格全賦值為1怎么辦?用for循環,但其中的變量 i 需注意range("a"&i)的寫法,可用工作表界面&的作用類比;
  3. 進一步地,引入用表達式賦值;
  4. 以上一節給每周一塗色為例,用range+for循環回避相對引用的問題,理解for循環中的step設置;

 

  • If 邏輯判斷--過程控制
  1. 文件“DEMO-1-認識IF函數”,例1,在某一個單元格中,根據性別返回不同的稱呼,理解在工作表界面寫if···else函數和在vba中寫if函數的異同;
  2. 將一列全用if轉換,用for循環,進一步理解變量i在range中的使用;
  3. 在for循環中增加根據專業類填充專業代碼的if語句,理解多種可能時使用elseif語句及對代碼進行注釋的方法;
  4. 將姓名為空的記錄刪除,用宏錄制方式獲得刪除記錄的代碼,觀察結果;
  5. 分析有些行沒被刪除的原因,思考如何解決?強調注意刪除行時的陷阱;
  6. 解決方案較多,理解step -1的概念;
  • 用If退出for循環
  1. 文件“DEMO-1-認識IF函數”,例2,改寫上節的生成工資條宏,循環操作的每一步都選表頭,並粘貼到奇數列(先選該列第一個單元格),錄制一
    次的宏再用for,計算循環多少次;
  2. 計算次數很麻煩,怎么回避?考慮用if終止for循環(exit for),觀察循環結束的條件(插入到空行)。注意思考if語句的位置。
  3. 同理做回復工資表的宏。(可作為練習)
  4. 文件“DEMO-2-(作業)新個稅計算公式”,演示if  (加and的條件)的寫法,可不演示完。

 

需要理解並記住寫法的概念:
(1)Sub ABC()……End Sub

(2)Dim i as integer
         For i= 1 to 10……Next

需要理解的概念:
  什么是宏?什么是VBA?錄制宏時的相對引用是什么意思?什么是變量?

要點:選中第3行,觀察刪除時的表格變化情況,刪除第3行,接着刪第4行······共刪除?次。進行錄制

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM