国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

VBA二維數(shù)組追加數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了VBA二維數(shù)組追加數(shù)據(jù)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

redim對(duì)二維數(shù)組擴(kuò)展時(shí)會(huì)丟失數(shù)據(jù),即使使用Preserve參數(shù),也不行。

如果使用了 Preserve 關(guān)鍵字,就只能重定義數(shù)組最末維的大小,且根本不能改變維數(shù)的數(shù)目。

本例試圖解決這樣一個(gè)問(wèn)題:從EBS報(bào)表中導(dǎo)出Accout彈性域的值,其中文本格式的,有許多題頭類(lèi)的臟數(shù)據(jù),必須過(guò)濾;我試著在讀取文本的時(shí)候?qū)ine讀取的行字符串裝入數(shù)組ary1(一維),再將ary1數(shù)組裝入數(shù)組ary2(二維),最后以ary2直接賦值給range對(duì)表,快速將Account List主要信息提取到指定工作表上。

問(wèn)題來(lái)了,起初寫(xiě)代碼的將ary1裝入ary2時(shí),總是這樣哪樣錯(cuò)誤,不能重定義啊、下界超標(biāo)啊,最終是實(shí)現(xiàn)了需求,但代碼不簡(jiǎn)潔。

晚上有空,寫(xiě)個(gè)數(shù)組相加的函數(shù)解決上面的難點(diǎn),例子如下:

vba數(shù)組添加數(shù)據(jù),算法

將上圖中的數(shù)據(jù)裝入數(shù)組,再將數(shù)組復(fù)制給b,最后將b數(shù)據(jù)接合到a數(shù)據(jù)的后面,生成一個(gè)將數(shù)組;

Sub main()

Dim d() '聲明動(dòng)態(tài)數(shù)組

a = [A1:C4]

b = a   '直接復(fù)制數(shù)組

d = b

Debug.Print d(4, 2), "Redim前"
ReDim d(8, 3)        '只有增加最后一維數(shù)組的大小時(shí),不會(huì)丟失數(shù)據(jù)
Debug.Print b(4, 2)
Debug.Print d(4, 2), "Redim后"

c = addArr(a, b)

Debug.Print b(4, 2)
Debug.Print c(8, 2), "addArr后"

End Sub



Function addArr(a, b)
'mayc2023-03-02 17:26:19追加一個(gè)數(shù)組到另一個(gè)數(shù)組

Dim aAdd()

'ReDim addArr(8, 3)     '不能對(duì)函數(shù)名代表的數(shù)組進(jìn)行動(dòng)態(tài)聲明,僅在其第一次被賦值時(shí)可以指定其數(shù)組的維度和大小

ReDim aAdd(1 To (UBound(a) + UBound(b)), 1 To UBound(a, 2))

For i = 1 To UBound(a)

    For j = 1 To WorksheetFunction.Max(UBound(a, 2), UBound(b, 2))
'        這里只假設(shè)了a,b都是二維數(shù)組,第二維度可能不一樣;
'        但并沒(méi)有處理不一樣時(shí)的數(shù)組對(duì)齊問(wèn)題,這是不是一個(gè)矩陣問(wèn)題?mayc2023-03-02 19:54:33
            aAdd(i, j) = a(i, j)
        
    Next
    
Next

For i = 1 To UBound(b)

    For j = 1 To WorksheetFunction.Max(UBound(a, 2), UBound(b, 2))
        
            aAdd(i + UBound(a), j) = b(i, j)
        
    Next
    
Next

addArr = aAdd

End Function

就在寫(xiě)這個(gè)文章的時(shí)候,想到上面的代碼還是可以進(jìn)一步優(yōu)化的,比如定義個(gè)類(lèi),和類(lèi)屬性,完成a.add b,結(jié)果就是a追加了b的數(shù)據(jù)在尾部:)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-598293.html

到了這里,關(guān)于VBA二維數(shù)組追加數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀(guān)點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • VBA技術(shù)資料MF35:VBA_在Excel中過(guò)濾數(shù)據(jù)

    VBA技術(shù)資料MF35:VBA_在Excel中過(guò)濾數(shù)據(jù)

    【分享成果,隨喜正能量】好馬好在腿,好人好在嘴。不會(huì)燒香得罪神,不會(huì)講話(huà)得罪人。慢慢的你就會(huì)發(fā)現(xiàn),一顆好心,永遠(yuǎn)比不上一張好嘴。。 我給VBA的定義:VBA是個(gè)人小型自動(dòng)化處理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高數(shù)據(jù)的準(zhǔn)確度。

    2024年02月14日
    瀏覽(26)
  • VBA 連接ACCESS數(shù)據(jù)庫(kù)

    VBA 連接ACCESS數(shù)據(jù)庫(kù)

    在外部進(jìn)行變量聲明 如果報(bào)錯(cuò):用戶(hù)定義類(lèi)型未定義,可能是未引用所虛的外部庫(kù),在工具-引用中添加 連接數(shù)據(jù)庫(kù) ,本例通過(guò)按鈕的click事件連接,并將數(shù)據(jù)庫(kù)內(nèi)容填到單元格中 rs.Open SQL, con, adOpenKeyset, adLockOptimistic 中第三和第四個(gè)參數(shù)是限制記錄是否可讀寫(xiě)和鎖定的,具

    2024年02月12日
    瀏覽(26)
  • VBA-自定義面板,使用SQL查詢(xún)Excel數(shù)據(jù)

    VBA-自定義面板,使用SQL查詢(xún)Excel數(shù)據(jù)

    定制插件,實(shí)現(xiàn)用戶(hù)打開(kāi)任意一個(gè)工作簿,寫(xiě)sql對(duì)Excel中的數(shù)據(jù)進(jìn)行查詢(xún) 需求 篩選日期小于’2023-4-24’,按group字段分組,求和各分組下的銷(xiāo)售額,返回結(jié)果集新建工作表寫(xiě)入 數(shù)據(jù)源 現(xiàn)在有兩個(gè)表, 一個(gè)用戶(hù)的銷(xiāo)售金額表,記錄用戶(hù)不同日期的銷(xiāo)售金額,其中date字段是日期

    2024年02月01日
    瀏覽(24)
  • Excel·VBA單元格區(qū)域數(shù)據(jù)對(duì)比差異標(biāo)記顏色

    Excel·VBA單元格區(qū)域數(shù)據(jù)對(duì)比差異標(biāo)記顏色

    之前的一篇博客《Excel·VBA單元格重復(fù)值標(biāo)記顏色》,是對(duì)重復(fù)的整行標(biāo)記顏色 而本文是按行對(duì)比2個(gè)單元格區(qū)域的數(shù)據(jù),并對(duì)有差異的區(qū)域(一個(gè)單元格區(qū)域有的,而另一個(gè)單元格區(qū)域沒(méi)有的)標(biāo)記顏色,且只要存在任意1個(gè)字符不同的,則標(biāo)記顏色 代碼寫(xiě)為自定義函數(shù)使用

    2024年02月07日
    瀏覽(26)
  • VBA智慧辦公6——日期自動(dòng)更新及數(shù)據(jù)每日更新

    VBA智慧辦公6——日期自動(dòng)更新及數(shù)據(jù)每日更新

    目錄 前情提要 VBA獲取當(dāng)前日期 正文測(cè)試 目標(biāo)要求 獲取最新行? 獲取時(shí)間 時(shí)間格式錄入 總代碼 效果 前情提要 VBA獲取當(dāng)前日期 在這個(gè)示例中,我們首先聲明了一個(gè)名為 today 的 Date 對(duì)象,然后將其賦值給變量 today 。這將返回當(dāng)前日期和時(shí)間。 您還可以使用 Now 函數(shù)來(lái)獲取當(dāng)

    2024年02月06日
    瀏覽(37)
  • VBA之正則表達(dá)式(43)-- 從網(wǎng)頁(yè)中提取指定數(shù)據(jù)

    VBA之正則表達(dá)式(43)-- 從網(wǎng)頁(yè)中提取指定數(shù)據(jù)

    實(shí)例需求:由網(wǎng)頁(yè)中提取下圖中顏色標(biāo)記部分內(nèi)容,網(wǎng)頁(yè)中其他部分與此三行格式相同。 【代碼解析】 第6行代碼創(chuàng)建正則對(duì)象。 第7行代碼設(shè)置正則匹配模式。 正則表達(dá)式 說(shuō)明 id=[^]+ 匹配以 id= 開(kāi)頭,后面跟一個(gè)或者多個(gè)除 之外的任意字符 [^]+#[^]+ 匹配以一個(gè)或者多個(gè)除

    2024年02月07日
    瀏覽(22)
  • excel vba 將多張數(shù)據(jù)表的內(nèi)容合并到一張數(shù)據(jù)表

    功能描述:? 一個(gè)Excel文件有很多個(gè) 樣式相同 的數(shù)據(jù)表, 需要將多張數(shù)據(jù)表的內(nèi)容合并到一張數(shù)據(jù)表里。 vba實(shí)現(xiàn)代碼如下: ?文件鏈接:數(shù)據(jù)表合并.bas 下載后直接在excel 查看代碼處導(dǎo)入文件即可。

    2024年02月11日
    瀏覽(40)
  • 怎么使用VBA查找多個(gè)工作表中相同和不相同的數(shù)據(jù)

    您可以使用VBA代碼來(lái)查找多個(gè)工作表中的相同和不相同的數(shù)據(jù)。以下是一些基本步驟: 打開(kāi)Microsoft Excel,然后打開(kāi)您想要查找的工作簿。 按下\\\"Alt + F11\\\"鍵打開(kāi)\\\"Visual Basic for Applications\\\" (VBA) 編輯器。 在VBA編輯器中,單擊\\\"插入\\\",然后選擇\\\"模塊\\\"以創(chuàng)建一個(gè)新的模塊。 在模塊窗口

    2024年02月12日
    瀏覽(20)
  • VBA技術(shù)資料MF107:表對(duì)象中數(shù)據(jù)的刪除查找及排序

    VBA技術(shù)資料MF107:表對(duì)象中數(shù)據(jù)的刪除查找及排序

    我給VBA的定義:VBA是個(gè)人小型自動(dòng)化處理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高數(shù)據(jù)的準(zhǔn)確度。我的教程一共九套,分為初級(jí)、中級(jí)、高級(jí)三大部分。是對(duì)VBA的系統(tǒng)講解,從簡(jiǎn)單的入門(mén),到數(shù)據(jù)庫(kù),到字典,到高級(jí)的網(wǎng)抓及類(lèi)的應(yīng)用。另外,為

    2024年01月17日
    瀏覽(23)
  • 數(shù)據(jù)結(jié)構(gòu)與算法—一維數(shù)組、二維數(shù)組、矩陣、順序串、鏈接串的C++代碼實(shí)現(xiàn)

    1、一維數(shù)組:ArrayOneD.h 數(shù)組這種數(shù)據(jù)結(jié)構(gòu)可以看作線(xiàn)性表的推廣。數(shù)組一般采用順序存儲(chǔ)的方法表示。 這是一個(gè)模板類(lèi) ArrayOneD 的實(shí)現(xiàn),用于表示一維數(shù)組。它包括了 構(gòu)造函數(shù)、拷貝構(gòu)造函數(shù)、析構(gòu)函數(shù)、重載下標(biāo)運(yùn)算符、重載賦值運(yùn)算符、求數(shù)組長(zhǎng)度、重新設(shè)置數(shù)組長(zhǎng)度

    2024年02月07日
    瀏覽(38)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包