vb一維陣列賦值,vb 如何定義一個未知大小一維陣列?

時間 2022-02-12 19:50:20

1樓:牛信從戊

你那麼厲害了不會不懂寫吧?vba整型定義後全都是賦為0的,並不需要賦值0。

w迴圈這個應該簡單吧:寫上個看看,沒執行過,你試試dimw,q

asinterger

forw=1

to10

forq=1

to23

ability(w,q)=ability(0,q)next

next

msgbox

ability(2,1)

'看看成功沒!

2樓:鍾梓維錢雪

private

subcommand1_click()

dima(0

to9)

'定義個陣列大小為10

fori=0

to9a(i)

=int(rnd*10

+1)'給陣列賦隨機值

next

iforj=

0to9print

a(j)

'列印陣列的元素值

next

jend

sub這很簡單吧

vb 如何定義一個未知大小一維陣列?

3樓:匿名使用者

動態陣列陣列到底應該有多大才合適,有時可能不得而知。所以希望能夠在執行時具有改變陣列大小的能力。

動態陣列就可以在任何時候改變大小。在 visual basic 中,動態陣列最靈活、最方便,有助於有效管理記憶體。例如,可短時間使用一個大陣列,然後,在不使用這個陣列時,將記憶體空間釋放給系統。

如果不用動態陣列,就要宣告一個陣列,它的大小儘可能達到最大,然後再抹去那些不必要的元素。但是,如果過度使用這種方法,會導致記憶體的操作環境變慢。

要建立動態陣列,請按照以下步驟執行:

(如果希望陣列為公用陣列,則)用 public 語句宣告陣列,或者,(如果希望陣列為模組級,則)在模組級用 dim 語句宣告陣列,或者(如果希望陣列為區域性陣列,則)在過程中用 static 或 dim 語句宣告陣列。給陣列附以一個空維數表,這樣就將陣列宣告為動態陣列。 dim dynarray ()

用 redim 語句分配實際的元素個數。

redim dynarray (x + 1)

redim 語句只能出現在過程中。與 dim 語句、static 語句不同,redim 語句是一個可執行語句,由於這一語句,應用程式在執行時執行一個操作。

redim 語句支援這樣的語法,它與固定陣列中使用的語法相同。對於每一維數,每個 redim 語句都能改變元素數目以及上下界。但是,陣列的維數不能改變。

redim dynarray (4 to 12)

例如,用第一次宣告在模組級所建立的動態陣列 matrix1:

dim matrix1 () as integer

然後,在過程中給陣列分配空間:

sub calcvaluesnow ()..

.redim matrix1 (19, 29)

end sub

這裡的 redim 語句給 matrix 分配一個 20 × 30 的整數矩陣(元素總大小為 600)。還有一個辦法,用變數設定動態陣列的邊界:

redim matrix1 (x, y)

注意 您可以將字串賦值給大小可變的位元組陣列。一個位元組陣列也可以被賦值給一個可變長的字串。一定要注意字串中的位元組數會隨平臺而變化。

同一個字串在 unicode 平臺上的位元組數是它在非 unicode 平臺上的兩倍。

保留動態陣列的內容每次執行 redim 語句時,當前儲存在陣列中的值都會全部丟失。visual basi 重新將陣列元素的值置為 empty(對 variant 陣列)、置為 0(對 numeric 陣列)、置為 零長度字串(對 string 陣列)或者置為 nothing(對於物件的陣列)。

在為新資料準備陣列,或者要縮減陣列大小以節省記憶體時,這樣做是非常有用的。有時希望改變陣列大小又不丟失陣列中的資料。使用具有 preserve 關鍵字的 redim 語句就可做到這點。

例如,使用 ubound 函式引用上界,使陣列擴大、增加一個元素,而現有元素的值並未丟失:

redim preserve dynarray (ubound (dynarray) + 1)

在用 preserve 關鍵字時,只能改變多維陣列中最後一維的上界;如果改變了其它維或最後一維的下界,那麼執行時就會出錯。所以可這樣程式設計:

redim preserve matrix (10, ubound (matrix, 2) + 1)

而不可這樣程式設計:

redim preserve matrix (ubound (matrix, 1) + 1, 10)

詳細資訊 關於動態陣列的更詳細資訊,請參閱語言參考中的「redim 函式」。關於物件陣列,請參閱「用物件程式設計」。

4樓:匿名使用者

可以的,先定義一個動態陣列:dim a() as string到使用的地方,再重定義上下限:

n=15

redim a(1 to n) ',當然,n 在重定義前就要確定如果a中放了資料了,還要增加上限,還可以用 redim preserve 語句來擴充陣列:

a(15)=15

redim preserve a(ubound(a) + 10) '只增加上限,不改變元素值

5樓:匿名使用者

dim a() as string

括號內不用寫數,系統就預設為一維陣列,如果串列埠通訊時,不知傳送多少位元組,直接寫陣列名就可以,如果在某處知道大小,可以使用redim a(0 to x) as string就可以了。

6樓:彩虹飲料

dim arr() as integer

dim size as integer

size=5

redim arr(1 to size)

也就是一開始只是宣告一個變數,等到「知道」或者"應該知道"的時候用redim重新定義其大小,這個例子中用了一個變數size,size可以根據實際情況設定,比如班級人數存在student變數中,就讓size=sutdent,然後陣列大小就確定了

在vb 中怎樣只給一維陣列的第一個元素賦值

7樓:匿名使用者

可以使用lbound函式

例如:private sub command1_click()dim a(10) as integer

a(lbound(a)) = 4  '向一維陣列的第一個元素賦值end sub

8樓:匿名使用者

只要定義了陣列,不賦值的話,它就預設為空或者0

vb中如何給陣列批量賦值

9樓:vb妮可

vb有2種方法可以一次性的將字串放入陣列中:

方法一:

a=array("abc","abcd","ttt")方法二:

b="abc,abcd,ttt"

a=split(b,",")

10樓:匿名使用者

dim i as integer

dim a(10) as string

t = array("abc","abcd","ttt",...)for i=0 to 9

a(i)=t(i)

next i

11樓:匿名使用者

這樣一個一個寫太麻煩了

有沒有像這樣的寫法

a=如果樓上的不算的話,沒有!

vb 陣列賦值、定義。

12樓:暴風錘

陣列必須先定義(宣告),然後才能賦值。

下面全面講解陣列的相關知識:

陣列的概念

1.引例

求100個學生的平均成績及超過平均成績的人數。

如果用一般變數來表示成績,需要用100個變數,如:mark1、mary2、……mark100。若用陣列,可以只用一個來表示mark(1

to 100)。

2.基本概念

陣列:是同型別變數的一個有序的集合。

如:a(1to 100),表示一個包含100個陣列元素的名為a的陣列。

陣列元素: 即陣列中的變數。用下標表示陣列中的各個元素。

表示方法:陣列名(p1,p2,……)

其中p1、p2表示元素在陣列中的排列位置,稱為「下標」。

如:a(3,2)代表二維陣列a中第3行第2列上的那個元素。

陣列維數: 由陣列元素中下標的個數決定,一個下標表示一維陣列,二個下標表示二維陣列。

vb中有一維陣列、二維陣列、……最多60維陣列。

下標: 下標表示順序號,每個陣列有一個唯一的順序號,下標不能超過陣列宣告時的上、下界範圍。下標可以是整型的常數、變數、表示式,甚至又是一個陣列元素。

下標的取值範圍是:下界 to 上界 ,預設下界時,系統預設取0。

3.陣列宣告

陣列必須先宣告後使用。宣告陣列就是讓系統在記憶體中分配一個連續的區域,用來儲存陣列元素。

宣告內容:陣列名、型別、維數、陣列大小。

一般情況下,陣列中各元素型別必須相同,但若陣列為variant時,可包含不同型別的資料。

靜態陣列:宣告時確定了大小的陣列。

動態陣列: 宣告時沒有給定陣列大小(省略了括號中的下標),使用時需要用redim語句重新指出其大小。

靜態陣列及宣告

1. 一維陣列

靜態一維陣列的宣告形式:

dim 陣列名(下標) [as 型別]

說明:(1)下標必須為常數,不可以為表示式或變數;

(2)下標下界最小為-32768,最大上界為32767;省略下界,其預設值為為0,一維陣列的大小為:上界-下界+1

(3) 如果省略型別,則為變體型

例: (1) dim a(10) as integer

宣告瞭a是陣列名、整型、一維陣列、有11個元素,下標的範圍是0~10。

(2) dim b(-3 to 5) as string*3

宣告瞭b是陣列名、字串型、一維陣列、有9個元素,下標的範圍是-3~5,每個元素最多存放3個字元。

2.多維陣列

靜態多維陣列的宣告形式:

dim 陣列名(下標1[,下標2…]) [as 型別]

說明: (1)下標個數決定陣列的維數,最多60維。

(2)每一維的大小=上界-下界+1;陣列的大小=每一維大小的乘積。

例:dim c(-1to 5, 4) as long

宣告瞭c是陣列名、長整型、二維陣列、第一維下標範圍為-1~5,第二維下標的範圍是0~4,佔據7x 5個長整型變數的空間。

3.注意事項

(1)在有些語言中,下界一般從1開始,為了便於使用,在vb的窗體層或標準模組層用option base n 語句可重新設定陣列的下界,如option base 1。

(2) 在陣列宣告中的下標關係到每一維的大小,是陣列說明符,而在程式其他地方出現的下標為陣列元素,兩者寫法相同,但意義不同。

(3) 在陣列宣告時的下標只能是常數,而在其他地方出現的陣列元素的下標可以是變數。

動態陣列及宣告

1. 動態陣列的建立與宣告

建立動態陣列的方法是:利用dim、private、public語句宣告括號內為空的陣列,然後在過程中用redim語句指明該陣列的大小。語法是:

redim 陣列名(下標1[,下標2…]) [as 型別]

其中下標可以是常量,也可以是有了確定值的變數,型別可以省略,若不省略,必須與dim中的宣告語句保持一致。

例: dim d() as single

sub form_load()

…… redim d(4,6)

……end sub

2.注意事項

(1)在動態陣列redim語句中的下標可以是常量,也可以是有了確定值的變數;

(2)在過程中可以多次使用redim來改變陣列的大小,也可改變陣列的維數。

(3)每次使用redim語句都會使原來陣列中的值丟失,可以在redim語句後加preserve引數來保留陣列中的資料,但使用preserve只能改變最後一維的大小,前面幾維大小不能改變。

使用動態陣列的優點是根據使用者需要,有效地利用儲存空間,它是在程式執行到redim語句時才分配儲存單元,而靜態陣列是在程式編譯時分配儲存單元。

vb定義陣列

阿豪呦 有兩種方法定義陣列 1.知道陣列的元素個數,那麼直接定義 dim a 9 as integer 2.暫時不知道元素個數,或者該陣列應用在多個地方,那麼如下定義 dim a as integer 在使用的時候,再重定義一下就可以了 redim a 9 dim private public 陣列...

vb如何將textbox中內容賦值給陣列

text1.text 12,34,56 temp split text1.text,for i 0 to ubound temp debug.print temp i next 用join split函式!join語法 join list delimiter join函式語法有如下幾部分 描述 li...

用vb編寫求元素的一維陣列A,使用INPUTBOX函式賦值,輸出最小元素的值及其下標

尤在尤存 一樓有問題.dim a 19 as double for i 0 to 19 a i inputbox 請輸入一個數 next dim min1 as double 記錄最小值dim min2 as integer 記錄下標min1 a 0 min2 0 要賦初值for i 1 to 19...