九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
VBA基礎(chǔ)-數(shù)組知識(shí)

數(shù)組

很多初學(xué)者都要問(wèn),為什么要學(xué)數(shù)組?

?數(shù)組很重要的一個(gè)特點(diǎn)就是讀寫(xiě)速度快(因?yàn)閿?shù)組的數(shù)據(jù)是存儲(chǔ)在電腦內(nèi)存中的)。因此數(shù)組可以提速。

?另一個(gè)就是可以將單元格區(qū)域賦值給數(shù)組,這一點(diǎn)可以極大的簡(jiǎn)化VBA代碼。


下面我們做個(gè)小測(cè)試:我們把表格中A1:G10區(qū)域的數(shù)據(jù)復(fù)制到A12:G21區(qū)域,我們分別用copy方法和數(shù)組寫(xiě)入的方法來(lái)測(cè)試運(yùn)行時(shí)間。

以下是運(yùn)行代碼及運(yùn)行耗費(fèi)時(shí)間對(duì)比。

   copy方法寫(xiě)入      

                                數(shù)組寫(xiě)入                                               

我們明顯可以看到用數(shù)組方法將數(shù)據(jù)寫(xiě)入單元格要比直接從單元格復(fù)制到另外一個(gè)單元格節(jié)省一半時(shí)間。

?那么什么是VBA數(shù)組呢?

    VBA數(shù)組就是儲(chǔ)存一組數(shù)據(jù)的數(shù)據(jù)空間。數(shù)據(jù)類型可以數(shù)字,可以是文本,可以是對(duì)象,也可以是VBA數(shù)組.

?VBA數(shù)組的形式

    VBA數(shù)組是以變量形式存放的一個(gè)空間,它也有行有列,也可以是三維空間。數(shù)組中的元素按次序存儲(chǔ)在數(shù)組中,通過(guò)索引號(hào)進(jìn)行區(qū)分。

 ?數(shù)組分類  

數(shù)組按類型可以分為三種   

a.一般分為:常量數(shù)組,靜態(tài)數(shù)組,動(dòng)態(tài)數(shù)組

b.如按維度為:1維,2維,3維......60 維

?常量數(shù)組

          array(4,6),這里array是個(gè)函數(shù),功能是返回一個(gè)包含數(shù)組

          array(array(34,3,4),array("q","r"))

 ?靜態(tài)數(shù)組

          x(10) 有10個(gè)位置,編號(hào)從0~10,這種情況,默認(rèn)從0開(kāi)始編號(hào)

          arr(1 to 10) ,有10個(gè)位置,編號(hào)1~10

          arr(1 to 10,1 to 2) 10行2列的空間(可比喻成單元格區(qū)域來(lái)理解),總共20個(gè)位置,這是二維數(shù)組

          arr(1 to 10,1 to 2,1 to 3) 三維數(shù)組,總10*2*3=60個(gè)位置。這是三維數(shù)組

  ?動(dòng)態(tài)數(shù)組

          arr() 不知道有多少行多少列


?請(qǐng)認(rèn)真看 ①arr只是一個(gè)數(shù)組變量的代稱,不要跟array函數(shù)混淆。你當(dāng)然可以用brr、crr、acc、a等等作為數(shù)組變量。

                       ②靜態(tài)數(shù)組在執(zhí)行期間不可改變其最大上界限,而動(dòng)態(tài)數(shù)組可以。動(dòng)態(tài)數(shù)組必須強(qiáng)制聲明變量。比如:dim  arr()  ,而且在使用的時(shí)候需要從新用redim  arr()再聲明一次,為了給動(dòng)態(tài)數(shù)組分配存儲(chǔ)空間及維數(shù)、上下界。若要保存動(dòng)態(tài)數(shù)組中之前的數(shù)據(jù)用redim  preserve arr() 聲明。動(dòng)態(tài)數(shù)組可以適應(yīng)程序需要并節(jié)省內(nèi)存。

Sub 動(dòng)態(tài)數(shù)組寫(xiě)入()

    Dim arr()

    Dim row

    row = Sheets("sheet2").Range("a65536").End(xlUp).row - 1

    ReDim arr(1 To row)'重新定義arr數(shù)組的上界

    For x = 1 To row

        arr(x) = Cells(x, 1) '將單元格數(shù)據(jù)寫(xiě)入數(shù)組

    Next x

    Stop

End Sub

  關(guān)于動(dòng)態(tài)數(shù)組,我自己的理解 :在將某些符合條件的數(shù)據(jù)寫(xiě)入數(shù)組的時(shí)候,你不知道符合條件的個(gè)數(shù)是多少,數(shù)組的上界你就不知道,這個(gè)時(shí)候就要用到動(dòng)態(tài)數(shù)組了。如果大致估計(jì)一個(gè)上界來(lái)寫(xiě)入數(shù)據(jù),會(huì)出現(xiàn)數(shù)組大小不夠(下標(biāo)越界),或者空余空間過(guò)多而沒(méi)有數(shù)據(jù)的情況。


?創(chuàng)建數(shù)組三大方式

     三個(gè)方法:①array函數(shù)創(chuàng)建 ② split函數(shù)創(chuàng)建 ③ 通過(guò)Range對(duì)象直接創(chuàng)建數(shù)組

     arr = array(4,6)

     arr = split("你好@vba@歡迎@關(guān)注@","@"),以 "@"為間隔將字符串劃分為一個(gè)下標(biāo)從0開(kāi)始的數(shù)組。注意:下標(biāo)從0開(kāi)始。

     arr = range("a1:a10") ,這就是在本節(jié)課最開(kāi)始的時(shí)候單元格區(qū)域?qū)懭霐?shù)組的方法。這里arr的大小就是(1 to 10, 1 to 1 ),10行一列。


下面的內(nèi)容,句句是經(jīng)典,處處容易產(chǎn)生疑問(wèn)。

?請(qǐng)認(rèn)真看:VBA“眼”中的單元格區(qū)域,全部都是二維的,不存在一維。單元格區(qū)域(無(wú)論是一行還是一列,還是多行多列)直接導(dǎo)入內(nèi)存形成的VBA數(shù)組,全部都是二維VBA數(shù)組,不會(huì)形成VBA一維數(shù)組。

                       ②由單元格區(qū)域?qū)雰?nèi)存形成的VBA數(shù)組的最小下標(biāo),都是1(無(wú)論是行下標(biāo)還是列下標(biāo))

                       單行單元格區(qū)域的值,經(jīng)過(guò)二次轉(zhuǎn)置會(huì)“脫離”單元格區(qū)域而形成“一行”純數(shù)值,其對(duì)應(yīng)VBA數(shù)組是一維數(shù)組,轉(zhuǎn)置用transpose函數(shù)

 例如:arr1 = Application.Transpose(Application.Transpose([a7:d7]))


?數(shù)組的兩個(gè)重要函數(shù):Ubound和Lbound函數(shù)

使用Ubound和Lbound函數(shù)可以計(jì)算數(shù)組的最大和最小索引號(hào)。

一個(gè)一維數(shù)組arr,如果想要知道它得最大索引號(hào)是多少,代碼為: Ubound(arr)

一個(gè)一維數(shù)組arr,如果想要知道它得最小索引號(hào)是多少,代碼為: Lbound(arr)

好了,到這里的分享就結(jié)束了,關(guān)于數(shù)組的東西重在思考理解。慢慢就不覺(jué)得抽象了。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA進(jìn)階|利用VBA數(shù)組管理數(shù)據(jù)清單和表格
VBA數(shù)組的深入講解:創(chuàng)建數(shù)組的方法及數(shù)組大小的判斷
VBA筆記:數(shù)組
蘭版VBA數(shù)組入門(mén)10講
【煙花原創(chuàng)】VBA零基礎(chǔ)之第116篇VBA數(shù)組(六)
vba數(shù)組函數(shù)與方法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服