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...