最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

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

2022-11-30 15:50 作者:Excel880實(shí)例教學(xué)網(wǎng)  | 我要投稿

投稿作者:凡心之旅 鄭廣學(xué)VBA175例教程首期學(xué)員


需求提出


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

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

前置知識

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

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

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

  • VBA字典基本知識

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

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

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

  • 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ù)依次取出號碼,年級,班級,姓名及比賽項(xiàng)目

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

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

下面我們講一講重難點(diǎn)

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


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


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


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

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

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

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

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

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



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

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

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

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

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

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

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

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

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


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


案例文件下載地址

請私信回復(fù)75630


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

分享到微博請遵守國家法律
五大连池市| 湘潭市| 北海市| 益阳市| 卢龙县| 西吉县| 汝城县| 大厂| 东至县| 独山县| 乐安县| 抚州市| 筠连县| 鹤峰县| 双鸭山市| 马公市| 淮安市| 页游| 宝丰县| 江永县| 江西省| 青龙| 建始县| 林州市| 图们市| 东城区| 乐业县| 谢通门县| 孟州市| 盘山县| 策勒县| 潜江市| 英吉沙县| 东海县| 连城县| 南溪县| 定边县| 繁峙县| 巢湖市| 台东市| 梁山县|