小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

4小時的工作,1秒完成,中學(xué)體育比賽賽道匯總VBA數(shù)組字典進階 ,VBA永遠(yuǎn)的神

 昵稱72339616 2022-11-30 發(fā)布于湖北

需求提出

今天我們來看一個運動會比賽表的整理問題,每個運動項目都有獨立的小表格,現(xiàn)在要整理成標(biāo)準(zhǔn)的二維表格,方便老師觀看每個同學(xué)的比賽項目。

原表一共有500多行數(shù)據(jù),幾十個小表格,是1個中學(xué)老師來找我定制,他說他每次做這個做一次要好幾個小時,我最后給他用Excel VBA代碼一鍵完成,也沒報高價,200塊,他拿到后驚為天人,一口一個謝謝,后面又給我單獨發(fā)了18塊錢的紅包請我喝奶茶!

當(dāng)然大家如果需要定制VBA表格,可以聯(lián)系我加QQ 3389320399 或微信 fxYYDS3389320399,隨時歡迎??!

前置知識

本案例屬于實戰(zhàn)案例,零基礎(chǔ)有點難,學(xué)習(xí)本案例需要至少有以下VBA基礎(chǔ)

  • VBA數(shù)組基礎(chǔ)

  • 根據(jù)表格有效區(qū)域獲取數(shù)組

  • VBA字典基本知識

  • VBA字典行列號法基礎(chǔ)

以上知識點,本人均在鄭廣學(xué)VBA175例教程中學(xué)習(xí)

  398元課程

  免費學(xué)7天

函數(shù)+VBA


結(jié)果標(biāo)題列號裝入項目列字典

  • VBA將學(xué)生號碼的行列號 裝入字典并用固定的分隔符連接

  • 循環(huán)字典中的學(xué)生號碼關(guān)鍵字 取出對應(yīng)的行列號

如數(shù)據(jù)下圖:

解題思路

由于數(shù)據(jù)比較大, 這次我們使用鄭老師教的萬能字典行列號法,使用VBA的行列號定位+數(shù)組循環(huán)來完成,下面就開始我們愉快的學(xué)習(xí)旅程!

  • 對源數(shù)據(jù)循環(huán),VBA將相同學(xué)生號碼的行列號裝入字典,行號用##分隔記錄,列號用$$分隔記錄

  • 循環(huán)字典中的學(xué)生號碼關(guān)鍵字 取出對應(yīng)的行號列號

  • 按逗號拆分行號列號得到行號列號數(shù)組

  • 循關(guān)鍵字?jǐn)?shù)組,從源數(shù)據(jù)依次取出號碼,年級,班級,姓名及比賽項目

  • 結(jié)果放入結(jié)果數(shù)組,寫入結(jié)果區(qū)

  •  

看圖中黃色底色廖凱同學(xué) 不管參加什么項目的比賽,他自己的學(xué)生號碼是唯一不變,這時候我就用 字典 記錄所有003號碼廖凱參加比賽項目的行列號,再通過是否包含男女字樣來鎖定標(biāo)題行,然后就可以提取我們所要的信息。

下面我們講一講重難點

1 、首先需要定義一些變量和字典對象,和大家一樣,最開始這個字典對象很長,總是記不住,不過還好有工具可以幫助我們快速輸入,安裝VBA代碼助手插件(vbayyds.com)后,在第25行 只需要輸入 dicd四個字母,然后空格就會得到提示 按下Tab鍵即直接輸入字典的定義, 即使是第一天學(xué)vba的同學(xué),也不怕記不住代碼了!

2、第09行到17行,將結(jié)果區(qū)域crr數(shù)組中的第1行的標(biāo)題作為字典的關(guān)鍵字key,列號作為他對應(yīng)值存入字典dic項目位置,后面在存放比賽項目的結(jié)果時候可以取出來對應(yīng)項目的列號位置。

3、同理:首先根據(jù)是否包含男女,把每個小表格的標(biāo)題行存入關(guān)鍵字為“標(biāo)題行”的對應(yīng)字典項目key值item中;然后再講每個參加比賽的同學(xué)學(xué)號的行列號用不同的分隔符連接起來 存入字典對應(yīng)key的值中(上次案例我們只了行號)

4 、定義一個結(jié)果數(shù)組brr ,循環(huán)對應(yīng)的號碼數(shù)組keys,取出字典中的所有號碼的行列號,

結(jié)果數(shù)組brr的第一列 放學(xué)生號碼;

結(jié)果數(shù)組brr的第二列 放對應(yīng)比賽項目的標(biāo)題中的年級信息;

結(jié)果數(shù)組brr的第三列 放原數(shù)組arr中的班級信息;

結(jié)果數(shù)組brr的第四列 放原數(shù)組arr中行號定位的姓名信息;

結(jié)果數(shù)組brr的第N列 將標(biāo)題行里的比賽項目,放結(jié)果區(qū)域中dic項目位置列號所對應(yīng)的列上打鉤。

注意 在輸出結(jié)果數(shù)組后,還要對結(jié)果區(qū)域的學(xué)號列從小到大進行排序??!

以上知識點在VBA175 194多列求和通用解法 記錄行號二次循環(huán)法深入講解 詳細(xì)講解

我的天哪 才小一百行了代碼量 就解決了今天的復(fù)雜問題,VBA永遠(yuǎn)的神 !

需要定制VBA表格,可以聯(lián)系我加QQ 3389320399 或微信 fxYYDS3389320399,隨時歡迎??!

 好了,今天有關(guān)在Excel中多子表行列轉(zhuǎn)換 VBA數(shù)組字典高階解法的問題便介紹到這,大家趕緊實際操作練習(xí)一下吧,有不懂的問題可以留言問小編呦!感謝支持Excel880工作室,還請多多轉(zhuǎn)發(fā),持續(xù)關(guān)注我們呀!

特別推薦使用VBA代碼助手,再也不怕記不住代碼

最后,像大家推薦鄭老師的VBA代碼助手(下載地址vbayyds.com)

只需輸入關(guān)鍵字,就能將收藏過的代碼整個帶出來,太贊了

比如上面代碼中的字典 數(shù)組輸出之類都只需要打幾個字就出來

我們可以用代碼助手看一下今天這個案例 我下午寫了多少代碼量

案例文件下載地址

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多