如何宣告陣列 VBA陣列如何定義,又該如何建立呢?

2021-10-16 03:12:29 字數 1807 閱讀 4526

從這一講開始,我們開始進入vba陣列階段,vba陣列和工作表陣列有著不同的意義,在很大程度上,工作表陣列的運算甚至可以看做是程式的執行,能夠理解工作表陣列的運算過程對於vba**的書寫是非常有益的,但vba陣列在大多數情況下,只是作為變數來儲存資料。這點和工作表陣列有很大的不同。

一、什麼是vba陣列 所謂vba陣列,就是共享乙個名字,有著多個元素按順序排列的變數。陣列中的資料具有相同的型別和結構,元素通過索引加以區分。這裡我把陣列的元素看做變數來對待,大家要注意,這個觀點在應用過程中是非常有意義的。

二、如何定義陣列 陣列在使用前必須要進行宣告,聲名陣列同宣告其他變數的方式一樣,也是用dim語句來宣告。唯一不同的是陣列有大小,即有多少個元素,或者說變數,還有就是要說明陣列的維數。一般情況下使用較多的是一維陣列和兩維陣列,需要注意的是陣列要以字母開頭,所用的字元僅限字母、數字和下下劃線,不允許出現標點符號和空格。當宣告了乙個陣列,便決定了這個陣列用於儲存數資料所用的記憶體空間。

預設情況下陣列是以0為下屆,也就是option base 0大多數情況下我們都是遵守此預設情況的,並且在用陣列時忽略陣列的第乙個元素,上屆不能超過long資料型別的範圍,而且上屆值不能小於下屆值。

如果我們習慣了用1作為我們的下界,可以強制宣告:option base 1,需要注意的是option base 0(1)必須放在所有模組之前。當然,我們也可以忽略這個強制宣告,那我們就需要在宣告陣列時,指明陣列的上界和下界,如:dim arrsheetname(1 to 3) as string表明這個陣列的上下界分別是1和3

下面我們講通過乙個例項來說明陣列的宣告及賦值,如下面的**:

sub mynzsz() '第18講 vba陣列的定義及建立

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].clearcontents '清除原有資料

[a1].resize(10, 2) = arr '將陣列賦值給a1單元格向下10行,向右2列的區域

end sub

**截圖:

**講解:

1 dim arr(1 to 10, 1 to 2) as integer 這裡給出了陣列的範圍最小的是arr(1, 1),最大的是

arr 是乙個集合。這個集合包括了20個元素(或者叫變數),分別是arr(1,1);arr(2,1);arr(1,2);arr(2,2);arr(1,3);arr(2,3);arr(1,4);arr(2,4);arr(1,5);arr(2,5);arr(1,6);arr(2,6);arr(1,7);arr(2,7);arr(1,8);arr(2,8);arr(1,9);arr(2,9);arr(1,10);arr(2,10)

執行後:

今日內容回向:

1 什麼是vba陣列。

2 vba陣列如何宣告?

php如何定義陣列常量

是這樣嗎?define best phper array name 鞏文 address china my god,明確告訴你不可以 原因是warning constants may only evaluate to scalar values。也就是說define常量的值 僅允許標量和 null。...

vba遍歷陣列 VBA如何處理多條件查詢?

我看見那美麗月亮 也看見你多情眼光 它讓我幻想 讓我想去飛翔 忘記憂傷 嗯,我們今天分享的內容是使用vba 實現多條件查詢的功能,照例舉個栗子。如下圖所示,表名為 明細表 的資料是明細資料。現在我們需要根據查詢表的姓名和課目兩個條件,在明細表中查詢相關的成績 對於vba來說,處理這樣的問題總是有乙個...

vba 陣列(動態陣列)

主要內容 本文章主要介紹vba中,陣列的使用,特別介紹動態陣列的使用,並有簡單事例,幫助理解。陣列是我們經常用到的儲存資料的一種媒介,他到底是什麼呢?陣列是具有相同資料型別並且共享乙個名字的一組變數的集合。通俗的說,陣列是變數。陣列的宣告 可以用dim語句或者public語句生命陣列。如 dim p...