久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

VBA實(shí)戰(zhàn)技巧05: 動(dòng)態(tài)調(diào)整數(shù)組以存儲(chǔ)所需數(shù)據(jù)

 hercules028 2020-04-10

excelperfect

數(shù)組是一種常用的數(shù)據(jù)結(jié)構(gòu),,可用來存儲(chǔ)一組相同類型的數(shù)據(jù),你可以將一個(gè)數(shù)組變量視為一個(gè)迷你的電子表格,,通過引用數(shù)組中的位置來存儲(chǔ)或者獲取數(shù)據(jù)。

下圖1所示的示例是一個(gè)名為MyArray的一維數(shù)組,,包含有6個(gè)元素,。注意,數(shù)組的索引通常從0開始,。

圖1

下圖2所示的示例是一個(gè)名為MyArray的3×4二維數(shù)組,,包含有12個(gè)元素,,像不像一個(gè)電子表格。注意,,其行列的基準(zhǔn)值都是從0開始的,。

圖2

當(dāng)然,還可以使用三維甚至更高維度的數(shù)組,,但我們最常使用的是一維數(shù)組或二維數(shù)組,。如果你想詳細(xì)學(xué)習(xí)數(shù)組的相關(guān)知識(shí),可參閱相關(guān)文章:

Excel VBA解讀|進(jìn)階篇(152):數(shù)據(jù)結(jié)構(gòu)——談?wù)剶?shù)組

Excel VBA解讀|進(jìn)階篇(153):數(shù)據(jù)結(jié)構(gòu)——基本的數(shù)組操作

Excel VBA解讀|進(jìn)階篇(154):數(shù)據(jù)結(jié)構(gòu)——數(shù)組常用操作示例代碼

Excel VBA解讀|進(jìn)階篇(155):數(shù)據(jù)結(jié)構(gòu)——數(shù)組相關(guān)的函數(shù)

VBA進(jìn)階|數(shù)組基礎(chǔ)01:用最淺顯的介紹來幫你認(rèn)識(shí)數(shù)組

VBA進(jìn)階|數(shù)組基礎(chǔ)02:簡(jiǎn)單的數(shù)組操作

……等等系列文章

快速了解數(shù)組后,,我們來講解在存儲(chǔ)數(shù)據(jù)時(shí)動(dòng)態(tài)調(diào)整數(shù)組大小的一些方法,。

方法1:預(yù)先調(diào)整數(shù)組大小

在數(shù)組中存儲(chǔ)數(shù)據(jù)之前,將數(shù)組大小調(diào)整為所要存儲(chǔ)的數(shù)據(jù)數(shù)量,。這非常適合事先知道需要存儲(chǔ)的數(shù)據(jù)有多少的情形,。

Sub PopulateArray1() Dim MyArray() As Variant Dim rngData As Range Dim rng As Range Dim i As Long '確定要存儲(chǔ)的數(shù)據(jù) Set rngData = ActiveSheet.UsedRange '在存儲(chǔ)數(shù)據(jù)前調(diào)整數(shù)組大小 ReDim MyArray(rngData.Cells.Count) '遍歷單元格并在數(shù)組中存儲(chǔ)數(shù)據(jù) For Each rng In rngData.Cells MyArray(i) = rng.Value i = i + 1 Next rngEnd Sub

方法2:隨時(shí)調(diào)整數(shù)組大小

VBA在調(diào)整數(shù)組大小時(shí),,會(huì)清除掉原先存儲(chǔ)的數(shù)據(jù),。如果調(diào)整數(shù)組大小的同時(shí),想要保留之前存儲(chǔ)在數(shù)組中的數(shù)據(jù),,則需要使用Preserve關(guān)鍵字,,告訴VBA在增加數(shù)組存儲(chǔ)容量時(shí),保留原來存儲(chǔ)在數(shù)組中的數(shù)據(jù),。

Sub PopulateArray2()    Dim MyArray() As Variant    Dim rngData As Range    Dim rng As Range    Dim i As Long       '確定要存儲(chǔ)的數(shù)據(jù)    Set rngData = ActiveSheet.UsedRange       '遍歷單元格區(qū)域并在數(shù)組中存儲(chǔ)數(shù)據(jù)    For Each rng In rngData.Cells        ReDim Preserve MyArray(i)        MyArray(i) = rng.Value        i = i + 1    Next rngEnd Sub

方法3:從帶有分隔符的字符串中創(chuàng)建數(shù)組

分隔符是用于分隔數(shù)值的指定字符,,例如CSV文件就是由逗號(hào)分隔的值組成的文件,我們可以將由分隔符組成的字符串拆分成數(shù)組,。例如,,下面的代碼首先將數(shù)值轉(zhuǎn)換成由“;|;”分隔成的字符串,然后將該字符串轉(zhuǎn)換成數(shù)組,。

Sub PopulateArray3() Dim MyArray As Variant Dim myString As String Dim rngData As Range Dim rng As Range '確定要存儲(chǔ)的數(shù)據(jù) Set rngData =ActiveSheet.Range('C1:C100') '遍歷單元格區(qū)域并以指定的分隔符連接數(shù)值 '并將其存儲(chǔ)在字符串中 For Each rng In rngData.Cells myString = myString &';|;' & rng.Value Next rng '移除字符串末尾的分隔符(;|;) myString = Right(myString, Len(myString) - 3) '使用Split函數(shù)創(chuàng)建數(shù)組 MyArray = Split(myString, ';|;')End Sub

如果已經(jīng)有一個(gè)帶分隔符的字符串,,那么可以使用代碼很方便地將其拆分成數(shù)組:

Sub PopulateArray4()    Dim MyArray As Variant    Dim myString As String       '使用分隔符的字符串    myString = '一年級(jí);|;二年級(jí);|;三年級(jí);|;四年級(jí);|;五年級(jí);|;六年級(jí)'       '使用Split函數(shù)創(chuàng)建數(shù)組    MyArray = Split(myString, ';|;')End Sub

方法4:直接賦值

可以直接將單元格區(qū)域賦值給數(shù)組變量來創(chuàng)建數(shù)組:

Sub PopulateArray5-1() Dim MyArray() As Variant '創(chuàng)建數(shù)組 MyArray =Application.Transpose(Range('A1:A6'))End Sub

還可以創(chuàng)建二維數(shù)組:

Sub PopulateArray5-2()    Dim MyArray() As Variant       '創(chuàng)建數(shù)組    MyArray = Range('A1:D3')End Sub

方法5:從表中提取數(shù)據(jù)直接創(chuàng)建數(shù)組

這個(gè)方法在表中的數(shù)據(jù)變化時(shí),代碼仍正常運(yùn)行,,也就是說,,表使數(shù)組也具有了自動(dòng)擴(kuò)展功能。

Sub PopulateArray6() Dim MyArray() As Variant Dim myTable As ListObject '設(shè)置表變量 SetmyTable = ActiveSheet.ListObjects('表1') '創(chuàng)建數(shù)組 MyArray =Application.Transpose(myTable.DataBodyRange.Columns(1))End Sub

注意,,方法4和方法5創(chuàng)建的數(shù)組其索引從1開始,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多