蘭版VBA數(shù)組入門(mén)10-1講
Sub 數(shù)組入門(mén)(1) Dim x As Integer
Dim arr(1 To 10) '創(chuàng)建一個(gè)可以盛下10個(gè)數(shù)的箱子,第一個(gè)位置是arr(1),第二個(gè)位置用arr(2).. For x = 1 To 10 '通過(guò)循壞向這個(gè)箱子里1-10個(gè)位置放入10個(gè)數(shù) arr(x) = x '箱子里依次放入數(shù)字1-10,即arr(1)=1,arr(2)=2.... Next x '通過(guò)上面的循環(huán),數(shù)組里裝滿了10個(gè)數(shù)字,下面就可以用arr(序數(shù))得到相應(yīng)位置的數(shù)了 MsgBox arr(5) '顯示數(shù)組內(nèi)第5個(gè)數(shù)字 End Sub 蘭版VBA數(shù)組入門(mén)10-3講VBA數(shù)組儲(chǔ)存于內(nèi)存中,單元格的數(shù)據(jù),儲(chǔ)存于工作表的單元格區(qū)域里。 從單元格中取出數(shù)據(jù)放在內(nèi)存。 單元格是行列結(jié)構(gòu)的數(shù)據(jù)表,把它搬到內(nèi)存中也應(yīng)該是二維的數(shù)組。怎么搬呢? 為了更好的搬運(yùn),內(nèi)存先批了一塊土地。內(nèi)存說(shuō)了,你有多少個(gè)單元格我不問(wèn),反正你有多少數(shù)據(jù)我提供多大的地方。 一、聲明: Dim arr as Variant '聲明一個(gè)變量,這個(gè)變量應(yīng)該是一個(gè)可以轉(zhuǎn)化成數(shù)組的Variant類型(可以省略),不能聲明其他數(shù)據(jù)類型 如: Dim arr as string 這種聲明就是錯(cuò)誤的,存放單元格的數(shù)據(jù)類型必須是 Variant(也可以省略) Dim arr(1 to 10, 1 to 2 ) , 這種聲明也是錯(cuò)誤的,固定大小的VBA數(shù)組是不能一次性裝入單元格數(shù)據(jù) 或:dim arr() 這種聲明方式是聲明一個(gè)動(dòng)態(tài)數(shù)組,也可以裝入單元格區(qū)域,構(gòu)成一個(gè)VBA數(shù)組。 二、裝入 arr =range("a9:c100") '裝入很簡(jiǎn)單,變量 = 單元格區(qū)域 三、讀出 裝入數(shù)組后的單元格數(shù)值,可以按 數(shù)組名稱(行數(shù),列數(shù)) 直接讀取該位置的值,如下面的代碼。 Msgbox arr(3,2) '就可以取出搬過(guò)去的而構(gòu)成的數(shù)組第3行第2列的內(nèi)容 四、示例 Sub s3() Dim arr() '聲明一個(gè)動(dòng)態(tài)數(shù)組(動(dòng)態(tài)指不固定大?。?br> Dim arr1 '聲明一個(gè)Variant類型的變量 arr1 = Range("a1:c7") '把單元格區(qū)域A1:C7的值裝入數(shù)組arr1 下期預(yù)告:搬入內(nèi)存的目的是為了更快速的計(jì)算,計(jì)算結(jié)束后,怎么搬回到單元格中呢?且聽(tīng)下回分解。
轉(zhuǎn)蘭版VBA數(shù)組入門(mén)10-4講
轉(zhuǎn)蘭版VBA數(shù)組入門(mén)10-5講
蘭版VBA數(shù)組入門(mén)10-6講
蘭版VBA數(shù)組入門(mén)10-7講
蘭版VBA數(shù)組入門(mén)10-8講
蘭版VBA數(shù)組入門(mén)10-9講
|
|