VBA中數組的利用及對「過程」的理解(VBA學習方案之五)

2020-12-20 VBA語言專家

2.1.6 在教程的講解中,我接著講解了數組的初步知識,在VBA中,數組是一處必須理解的知識點,我一直將數組作為變量的一種來看待。關於對於數組的講解,我會利用我的第三套教程進行專門講解,在教程中我是將數組和字典的知識點是一起來講解的。對於數組和字典部分在我利用了整個第三套教程進行講解,這在其他教程中是很少見的。這是因為「字典是VBA的精華」。字典是鍵和鍵值的組合,是我們VBA中級階段必須掌握的內容,我在隨後會講解到。

在第七套教程中,我僅對數組進行了簡單的利用進行了講解,數組其實就是一組變量,如果利用這樣的思維去理解數組,將會容易些。對的,數組就是一組具有相同屬性的變量。在對數組的知識講解中還提到了Lbound函數和Ubound函數,這兩個函數用於獲取數組的上界和下界(或者叫上標或下標),希望大家能理解數組、利用數組,這是自己VBA思維提高的一個必經階段,代碼控制一個變量到代碼控制多個變量是自己VBA思維的一個飛躍。這裡的數組是不同於EXCEL工作表中的數組,在VBA中數組大家可以摒棄迭代的運算了。

在數組的第七套講解中我將講解到「一維數組和二位數組」、「動態數組」。這些都是在VBA中經常利用到的,特別是動態數組,大家還要理解數組佔用內存的方式。

2.1.7在VBA中有一個比較重要的概念:過程。什麼是過程呢?過程有哪些分類呢?在第七套教程中我給出了下面的一段話「在VBA中,我們需要理解的概念其實就是幾個「對象」,「屬性」,「方法」,「事件」,而過程可以是看作是上面幾個定義的組合。但過程還可以分為Function過程和Sub過程。在Excel VBA中,Function過程和Sub過程的區別在於Function過程可以返回值,而Sub過程不能。隨著程序代碼的增加,利用Function過程變得非常有用。」 從上面的這段話中,我們可以看出過程中有對象的利用,有對對象屬性的設定和提取,還有對象方法的利用或者是對象事件的響應,還有就是上述的組合。其實在實際的工作中利用最多的就是組合了。那麼如何給過程下一個定義呢?其實,過程(process)是指事情進行或事物發展所經過的程序,事物的發展過程就是對象屬性的改變,對象方法和時間的利用。當然,這個定義我在教程中並沒有給出,這個定義是一個廣泛的定義,在教程中只要大家理解過程可以分為SUB過程,Function過程即可,在教程中我給大家詳細的說明了什麼是SUB過程,什麼是Function過程,以及兩者的區別。

如何學習VBA呢? 概括的說就是: 學習過程中要信、解、受、持,更要有回向的業力。無論您在學習的任何階段,都要對照教程的知識點加持自己的實際工作,總會有豐厚的收穫。

相關焦點

  • 使用VBA代碼給動態數組賦值
    .Clear '清除原有數據[d1].Resize(xcount, 1) = Application.WorksheetFunction.Transpose(arr) '將數組輸入單元格區域End Sub代碼解析:mynz過程將一個C列存儲了學生姓名工作表,有姓「王」的學生存儲在動態數組arr中,然後回填到工作表中。
  • 利用VBA代碼如何打開任意程序
    後疫情時代將會是一個全新的世界,很多理念都將被打破,大多數人不會再享受體制內的保護,對於我們每個人,要儘可能多的學習有用的知識,為自己充電。在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。為後疫情時代做的必要準備。今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。
  • 如何將Excel數據表單元格保存為數組,VBA數組進階應用
    No.1在vba編程中,數組應用是一個十分有用的方法。如何把數據表作為數組進行處理,是編程過程中的一個重要技能。學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。No.2上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。
  • VBA編程理論學習之談
    No.1 掌握對象方法和屬性VBA編程是一個即學即用的過程,幾乎不可能全面掌握所有對象的代碼,也不可能記住所有的對象屬性。所以,在實際應用中遇到哪些對象就對應去掌握這些對象的方法和屬性就可以,不需要完全學習。既浪費時間又沒有意義。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    本系列一直強調要善用各種工具,作為本系列的最後一節,那麼這次就用一例子說明如何讓Python結合Vba,直接在Excel中動態獲取各種處理條件,輸出結果。日後也會不定期分享 pandas 的處理案例,但不一定非要與 Excel 掛鈎。比如直接結合 power bi 做處理分析。本文主要效果如下圖:處理數據的過程在 Python 中進行。
  • VBA中動態數組的創建及利用
    後疫情時代將會是一個全新的世界,很多理念都將被打破,大多數人不會再享受體制內的保護,對於我們每個人,要儘可能多的學習有用的知識,為自己充電。在今後更加嚴峻的存量殘殺世界中,為自己的生存進行知識的儲備,特別是新知識的儲備。為後疫情時代做的必要準備。今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。
  • excel VBA是什麼?VBA編程入門教程
    VBA是一種面向對象的解釋性語言,通常使用來實現Excel中沒有提供的功能、編寫自定義函數、實現自動化功能等。excel vbaVBA對於沒有學過計算機語言的人來說會很陌生,會被它陌生的語句所嚇倒,從而放棄對它的學習。但是小編可以告訴大家,VBA其實很簡單。學會之後,你會愛上它,因為它真的很有趣。
  • Vba第四十三課
    Vba第四十三課關於vba操作工作表、數組、字典等所有的基本功能如果大家仔細去學習、認真敲代碼的話,數據分析應該是入門,當然vba作vb的分支語言,在office的平臺上去運行還是大有作為的,更深層次的功能都相當不錯,而前面的課程所講的功能基本可以定義為少量數據的清洗運算功能,要達到數據分析的水平是遠遠不夠的,比如操作資料庫、自定義函數等等都是數據分析的一些必要技巧
  • VBA代碼中數組的拆分與合併的實現
    今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。當前的代碼多是出自」VBA數組與字典解決方案」,有一些朋友反映分享的內容不能很好的理解,可以參考這套資料的內容進行研讀。今日分享的是第250集。
  • VBA數組與字典,數據單條件匹配之方法
    浮躁的心靜下來,靜定「空」心,去感悟真實的時間,靜下心,常存感恩之心,做善事,一生無愧。懷平常心,做平常事,日夜安寧。人之欲望不止,一山還比一山高,豈能如願?看淡紛爭,看輕得失,心安即是歸處。一杯茶,滿也好,少也好,不要計較其間;濃也好,淡也好,其中自有值得品的味道。逆境時多學習,積累的就是福報,多學習,積累的就是財富。保持快樂的心態,堅定且執著。
  • Vba第十九課
    代表任何一個單一字符「*」 代表零個或多個字符「#」 代表任何一個數字(0-9)Like對英文字符比較是區分大小寫的,也就是不匹配例:Sub like語句() If 「Vba」 like 「vba」 then Msgbox」匹配」 Else Msgobx」不匹配」
  • 利用VBA代碼,輕鬆完成向工作表中添加指定圖片到指定位置
    靜下心,多學習有用的知識,多提高自己的水平和能力,這才是正道。時間就像一張網,你撒在哪裡,你的收穫就在哪裡。謹記自己的方向,這是路之所在。適當節制自我的各種欲望,誰都逃不過時間的歷練,誰都是命運的行者,誰都是在人生的道路上一步一趨的行路人。你要做的,是悄悄地去努力,等你變厲害之後,把自己也嚇一跳,才是你現在需要當作目標的事。把生活與工作打理好,不負年華。
  • Excel vba 動態添加按鈕控制項 CommandButton
    文/江覓易見動態添加按鈕有時在vba編程中運用很多,也是一個比較容易實現的過程。這裡寫了一個很小的例子,做個示範,動態添加按鈕,而且按鈕數量不限,可批量添加,位置、大小、按鈕Caption自定義。如果對代碼不很熟悉,套用也較方便。下面是動態效果圖,文章結尾有代碼,可以參考使用。
  • VBA代碼中利用文本框,完成人機對話過程 - VBA語言專家
    VBA++ 題記: 靜下心,多學習有用的知識,多提高自己的水平和能力,這才是正道。時間就像一張網,你撒在哪裡,你的收穫就在哪裡。謹記自己的方向,這是路之所在。適當節制自我的各種欲望,誰都逃不過時間的歷練,誰都是命運的行者,誰都是在人生的道路上一步一趨。你要做的,是悄悄地去努力,等你變厲害之後,把自己也嚇一跳,才是你現在需要當作目標的事。把生活與工作打理好,不負年華。
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • 利用VBA實現個人小型辦公自動化過程中的數據批處理
    End Sub代碼解析:mynz過程將1到60000的數賦值給數組arr,賦值完成後將數組的值回填到工作表中,回填的區域是C列,回填用的語句是循環語句,直接提取每個數組的值給單元格。過程中計算所用的時間提示給用戶Timer - startime & "秒!"
  • vba編程,如何畫帶箭頭直線,教你這麼做馬上學會畫流程圖
    No.1Excel中畫線條是一個很簡單的操作,其中線條分幾種不同的類型,如線條端點形狀也分不同的幾種類型。下面具體介紹一下,如何利用vba代碼進行設置線條的一些方法。vba代碼畫線用到一個對象:LineFormat下圖為LineFormat屬性:屬性看上去較多,但大多有一定的規則,使用起來還是比較容易理解的。下面是一些用到的枚舉,有端點樣式枚舉、線條類型枚舉、箭頭長度枚舉。
  • 利用VBA代碼遍歷所有圖形的方案
    在今後更加嚴峻的存量殘殺世界中,對於我們每個人,要儘可能多學習有用的知識,為自己充電。知識的儲備,特別是新知識的儲備是我們為後疫情時代做的必要準備。今日繼續和大家分享VBA編程中常用的常用「積木」過程代碼。這些內容大多是我的經驗的記錄,來源於我多年的經驗。
  • Excel vba 批量刪除窗體控制項
    文/江覓易見動態創建窗體控制項後,可以進行動態刪除,如果是設計時從工具欄添加的控制項,不能動態刪除,不要問為什麼vba就是這麼規定的,也可以認為這是一個BUG,反正就是不能。其實,vba編程並不十分理想,因為有很多不可預知的問題出現,而且依賴環境也十分不友好,由於版本不同,同樣的文件就不能很好地運行,這也是一個不小的麻煩。因為在自己的電腦上編寫好的程序,換一臺電腦可能就無法運行,運行環境改變相應地要做一些系統設置,不然程序不能很好地發揮作用。
  • VBA代碼用SetFocus精確控制焦點事件
    VBA++ 題記: 靜下心,多學習有用的知識,多提高自己的水平和能力,這才是正道。時間就像一張網,你撒在哪裡,你的收穫就在哪裡。謹記自己的方向,這是路之所在。適當節制自我的各種欲望,誰都逃不過時間的歷練,誰都是命運的行者,誰都是在人生的道路上一步一趨。你要做的,是悄悄地去努力,等你變厲害之後,把自己也嚇一跳,才是你現在需要當作目標的事。