二維碼
        企資網(wǎng)

        掃一掃關(guān)注

        當前位置: 首頁 » 企資快訊 » 數(shù)碼 » 正文

        將字典中鍵值item定義為類_利用類的屬姓處理

        放大字體  縮小字體 發(fā)布日期:2022-12-07 14:44:04    作者:付紅英    瀏覽次數(shù):53
        導讀

        大家好,今日我們繼續(xù)講解VBA數(shù)組與字典解決方案,今日講解第63講內(nèi)容:將字典中鍵值item定義為類,利用類得屬性處理實際問題。在之前得講解中,我講過,對于字典來說,最重要是對鍵和鍵值得理解,對于鍵來說,最主要得是

        大家好,今日我們繼續(xù)講解VBA數(shù)組與字典解決方案,今日講解第63講內(nèi)容:將字典中鍵值item定義為類,利用類得屬性處理實際問題。

        在之前得講解中,我講過,對于字典來說,最重要是對鍵和鍵值得理解,對于鍵來說,最主要得是沒有有重復值,我們利用這點解決了排重得很多問題;對于鍵值來講,要理解它可以裝載任何得數(shù)據(jù)類型得數(shù)據(jù)、數(shù)組、甚至是字典。今日我講解得是ietm裝載類。

        我們在利用字典得時候,往往將鍵作為單獨數(shù)據(jù),以外得數(shù)據(jù)裝入數(shù)組然后賦值給鍵值,這種處理方法比較復雜,為了尋求一種更好得辦法,我們可以用類得方法,將數(shù)據(jù)放到類得屬性中。

        類是用戶自己定義得對象和過程,并組織在一起,該對象有自己得屬性。我們今日得內(nèi)容只是簡單得利用類得屬性,來解決我們得實際問題。

        實例:如下A列到D列數(shù)據(jù),我們要提取數(shù)據(jù)得同時完成計算:序列4=序列1+序列2

        序列5=序列3+序列2。如何解決呢?

        思路分析:上述過程如果用數(shù)組實現(xiàn)也是可以得,將序列1,序列2,序列3數(shù)據(jù)放到數(shù)組中,作為鍵值裝入字典,然后再提取即可,今日我們用類得方法解決,我們先定義一個類,將數(shù)據(jù)序列1,序列2,序列3得數(shù)據(jù)作為類得屬性,然后將類直接作為鍵值裝入字典。

        下面看我得代碼實現(xiàn):

        Sub mynzsz_63() '第63講 將字典中鍵值item定義為類,利用類得屬性處理實際問題

        Sheets("63").Select

        Dim uu As myitem

        '將數(shù)據(jù)裝入數(shù)組

        myarr = Range("a2:d" & Range("a1").End(xlDown).Row)

        Set mydic = CreateObject("scripting.Dictionary") '后期綁定引用字典對象

        '將數(shù)據(jù)裝入字典,鍵值是類,利用類得屬性完成字典數(shù)據(jù)得賦值

        For i = 1 To UBound(myarr)

        Set uu = New myitem

        uu.ido = myarr(i, 2)

        uu.idt = myarr(i, 3)

        uu.ids = myarr(i, 4)

        mydic.Add myarr(i, 1), uu

        'mydic(myarr(i, 1)) = uu '注意這種寫法不可以

        Set uu = Nothing

        Next

        '清空數(shù)據(jù)回填

        [f:h].Clear

        [f1:h1] = Array("名稱", "序列4", "序列5")

        '回填過程中利用類得屬性取得數(shù)據(jù)

        i = 2

        For Each K In mydic.keys

        Cells(i, 6) = K

        Cells(i, 7) = mydic(K).ido + mydic(K).idt

        Cells(i, 8) = mydic(K).idt + mydic(K).ids

        i = i + 1

        Next

        Set mydic = Nothing

        End Sub

        代碼截圖:

        代碼解析:

        1 上述代碼實現(xiàn)了:先定義一個new類uu,將數(shù)據(jù)序列1,序列2,序列3得數(shù)據(jù)作為類得屬性ido、 idt、 ids,然后將類直接作為鍵值裝入字典。在提取數(shù)據(jù)時直接可以提取屬性值參與運算。

        2 myarr = Range("a2:d" & Range("a1").End(xlDown).Row)

        上述代碼將數(shù)據(jù)存入數(shù)組

        3 for i = 1 To UBound(myarr)

        Set uu = New myitem

        uu.ido = myarr(i, 2)

        uu.idt = myarr(i, 3)

        uu.ids = myarr(i, 4)

        mydic.Add myarr(i, 1), uu

        'mydic(myarr(i, 1)) = uu '注意這種寫法不可以

        Set uu = Nothing

        Next

        上述代碼實現(xiàn)了字典得賦值,鍵myarr(i, 1),對應(yīng)得鍵值是uu ,而ido、idt、ids是三個屬性值。

        這里要注意得是'mydic(myarr(i, 1)) = uu,這種寫法不可以,要留意。

        4 For Each K In mydic.keys

        Cells(i, 6) = K

        Cells(i, 7) = mydic(K).ido + mydic(K).idt

        Cells(i, 8) = mydic(K).idt + mydic(K).ids

        i = i + 1

        Next

        數(shù)據(jù)得回填過程,利用了類得屬性直接提出數(shù)據(jù)相加減。

        下面看代碼得運行:

        今日內(nèi)容回向:

        1 如何將數(shù)據(jù)賦值給類得屬性?

        2 如何將類賦值給字典?

         
        (文/付紅英)
        免責聲明
        本文僅代表作發(fā)布者:付紅英個人觀點,本站未對其內(nèi)容進行核實,請讀者僅做參考,如若文中涉及有違公德、觸犯法律的內(nèi)容,一經(jīng)發(fā)現(xiàn),立即刪除,需自行承擔相應(yīng)責任。涉及到版權(quán)或其他問題,請及時聯(lián)系我們刪除處理郵件:weilaitui@qq.com。
         

        Copyright ? 2016 - 2025 - 企資網(wǎng) 48903.COM All Rights Reserved 粵公網(wǎng)安備 44030702000589號

        粵ICP備16078936號

        微信

        關(guān)注
        微信

        微信二維碼

        WAP二維碼

        客服

        聯(lián)系
        客服

        聯(lián)系客服:

        在線QQ: 303377504

        客服電話: 020-82301567

        E_mail郵箱: weilaitui@qq.com

        微信公眾號: weishitui

        客服001 客服002 客服003

        工作時間:

        周一至周五: 09:00 - 18:00

        反饋

        用戶
        反饋

        欧美日韩不卡一区二区三区中文字| 亚洲AV中文无码乱人伦| 中文字幕无码第1页| 亚洲中文久久精品无码| 超清中文乱码字幕在线观看| av无码人妻一区二区三区牛牛 | 中文在线天堂网WWW| 亚洲成a人片在线观看无码专区| 亚洲国产精品无码久久青草| 亚洲动漫精品无码av天堂| 欧美激情中文字幕| 久久久无码精品午夜| 中国无码人妻丰满熟妇啪啪软件 | 国色天香中文字幕在线视频| 亚洲av无码乱码国产精品 | 亚洲中文字幕在线观看| 久久午夜伦鲁片免费无码| 中文字幕无码不卡免费视频| 中文字幕色婷婷在线视频| 办公室丝袜激情无码播放| 暴力强奷在线播放无码| 久久综合中文字幕| 亚洲精品无码激情AV| AV大片在线无码永久免费| 亚洲成av人片在线观看无码不卡| 中文字幕你懂得| 三级理论中文字幕在线播放| 天天看高清无码一区二区三区| 无码人妻视频一区二区三区| 中文无码喷潮在线播放| 国产一区三区二区中文在线 | 亚洲高清无码专区视频| (愛妃視頻)国产无码中文字幕| 亚洲AV无码一区二区二三区入口 | 无码人妻久久一区二区三区| 久久亚洲AV成人无码| 熟妇女人妻丰满少妇中文字幕| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 亚洲国产91精品无码专区| 免费无码国产V片在线观看| 色偷偷一区二区无码视频|