No.1
在vba編程中,數組應用是一個十分有用的方法。
如何把數據表作為數組進行處理,是編程過程中的一個重要技能。
學會之後,將大大提高編程技術,也將使數據處理的過程變得更加流暢。
No.2
上圖為例,把表格內容作為數組值進行保存,然後通過流程編碼對成績進行一個比較判斷,最終得出一個成績等級的判定。
也就是通過成績的多少來確定一個等級區間。
同樣的判斷在不同的表格裡應用也比較多。
如一個銷售表裡面判斷某一個人或一類商品的銷量,如果在某一個區間就做出爆款判定,如果銷量小於某一個值,說明此商品應該下架。
同類型數據表格,我們用數組來做處理,效果會很好。
No.3
要對表格進行一個數組保存,我們用到上圖的一個屬性CurrentArray,此屬性是Range對象裡的一個屬性。
功能是將表格內容返回到一個數組裡。
如:
Dim NewArrr
NewArr=Thisworkbook.Activesheet.Range("A1:A10").CurrenRegion
通過以上代碼,創建了一個數組NewArr,包含了數據表中A1:A10的數據內容。
當然,vba並不是這麼解釋的,但可以這麼理解。
No.4
實際上表格轉換為數組,只要將Range對象對數組直接進行賦值即可,也就是把表格單元格直接賦值給數組。
如下例子:
Dim rs As RangeSet rs = s.Range("B2:B5")Dim arar = rsMsgBox UBound(ar)
執行之後,ar就是一個包含B2:B5單元格值的數組。
ar(1,1)ar(2,1)ar(3,1)ar(4,1)ar(5,1)
注意:
這個數組不是一維數組,它是一個二維數組。
如果要訪問數組中的第一個值,要用ar(1,1)來進行訪問,最後一個值用ar(4,1)訪問。
No.5
可以看到上圖為代碼示例,是這個例子的全部代碼,實際應用要對應著表格進行。
下面看下代碼的具體內容:
Private Sub GetDengji()Dim s As WorksheetSet s = ThisWorkbook.ActiveSheetDim r As RangeSet r = s.Range("B2")Dim ArrMa As VariantArrMa = r.CurrentRegion '數組賦值Dim ui As Long, li As Long, i As Long, j As Long, x As Longli = r.CurrentRegion.Rows.Count '行數ui = r.CurrentRegion.Columns.Count '列數x = r.CurrentRegion.Count '數組總數Dim DJ As VariantDJ = Array("優秀", "優良", "不及格")For i = 1 To li '循環行For j = 1 To ui '循環列If j = 5 And VBA.Len(ArrMa(i, j)) <> 0 Then '條件判斷第5列If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) >= 80 Then s.Cells(i, j + 1).Value = DJ(0)If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) >= 60 And ArrMa(i, j) <= 79 Then s.Cells(i, j + 1).Value = DJ(1)If VBA.IsNumeric(ArrMa(i, j)) And ArrMa(i, j) <= 59 Then s.Cells(i, j + 1).Value = DJ(2)End IfNext jNext iEnd Sub
應用數組編碼可以極大提高程序的運行效率,當然了,如果是初級編程人員,對於數組的學習還是有不小困難。
首先應用對數組概念進行一個全面學習。
然後,再著手編輯一些小型程序代碼,來驗證對數組的理解。
無論哪種程式語言,都將應用到數組,通過對數組的學習,我們會引申出另一個學習內容。
字典。
沒錯字典是整個編程中,相對獨特的一種類型。
由於它的特殊性,在應用過程中也是相當出色。
不得不學。
歡迎關注、收藏、轉發