如何手动输入给数组赋值_你是否真的了解VBA数组呢?让我带你认识一下真正的数组...
大家好,我們今日繼續講解VBA代碼解決方案的第110講內容:VBA數組講解,什么是數組,如何定義數組,如何創建數組
一、什么是數組 就是數組共享一個名字,有著多個元素按順序排列的變量。在數組中,元素通過索引加以區分。這里我把數組的元素看做變量來對待,大家要注意,這個觀點在應用過程中是非常有意義的。
二、如何定義數組 聲名數組同聲明其他變量的方式一樣,唯一不同的是數組有大小,即有多少個元素,或者說變量,還有就是要說明數組的維數。
如下面的代碼:
Sub Mynzsmart()
Dim i As Integer, j As Integer
Dim arr(1 To 10, 1 To 2) As Integer '定義一個10*2的二維數組(10行,2列)
j = 1 '數組1 to 10的索引號
For i = 1 To 20 Step 2
arr(j, 1) = i '賦值
arr(j, 2) = i + 1 '賦值
j = j + 1 '索引號增加
Next
[a1:b65536].Clear '清除原有數據
[a1].Resize(10, 2) = arr '將數組賦值給A1單元格向下10行,向右2列的區域
End Sub
代碼截圖:
運行后:
三、動態數組
在上面的講解中我們知道,聲明一個數組,必須指定數組的大小,即它是幾維數組,有多少個元素。但有些時候,我們在定義數組的時候,并不能確定數組的大小,這時,我們在首次定義數組的時候括號內為空(當然先指定一個大小也是可以的,但純屬是多余),在程序過程中用Redim語句去重新指定數組的大小,這就是動態數組。
比如一個工作表的C列存儲了學生姓名,現在我們需要把把有姓"王"的學生存儲在數組arr中,預先我們并不知道C列姓王的學生有三十個還是五十個,所以,我們在定義時代碼可以這樣:
代碼:
Sub MyNZsmarttwo()
Dim i%, xrow%, j%, xcount%
Dim arr() As String
erow = [c65536].End(3).Row '最后一個非空單元格行號
j = 1 '數組索引號
xcount = Application.WorksheetFunction.CountIf([c1:c65536], "王*") '統計有多少姓王的學生
ReDim arr(1 To xcount) '重新定義數組大小,元素共有xcount個
For i = 1 To erow
If Left(Cells(i, 3).Value, 1) = "王" Then
arr(j) = Cells(i, 3).Value '給數組元素賦值
j = j + 1 '索引號加1
End If
Next i
[d1:d65536].Clear '清除原有數據
[d1].Resize(xcount, 1) = Application.WorksheetFunction.Transpose(arr) '將數組輸入單元格區域
End Sub
運行結果:
今日內容回向:
1 什么是VBA數組。什么是動態數組
2 VBA數組如何聲明?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的如何手动输入给数组赋值_你是否真的了解VBA数组呢?让我带你认识一下真正的数组...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信没有回车键怎么换行_在东平相亲网加了
- 下一篇: 表格外粗内细怎么设置_金游艇复刻机芯-N