EXCEL VBA 常見字典用法集錦及代碼詳解(全)_第1頁
EXCEL VBA 常見字典用法集錦及代碼詳解(全)_第2頁
EXCEL VBA 常見字典用法集錦及代碼詳解(全)_第3頁
EXCEL VBA 常見字典用法集錦及代碼詳解(全)_第4頁
EXCEL VBA 常見字典用法集錦及代碼詳解(全)_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、 NextRange(a3:k&n).Borders.LineStyle=1Application.DisplayAlerts=TrueApplication.ScreenUpdating=TrueEndSub三、代碼詳解1、Dimd(1To3)AsNewdictionary:本例是前期綁定的,先引用了腳本運行時庫,聲明了3個元素的數(shù)組為新字典。2、x=Arr(i,2):把生產(chǎn)型號賦給變量x(1)。3、d(x(1)=d(x(1)+Arr(i,3):把相同生產(chǎn)型號和它的生產(chǎn)數(shù)量加入字典d(1),達(dá)到匯總的目的。4、x=Arr(i,2)&|&Arr(i,4):把生產(chǎn)型號和返修原因連起來賦給變量x(

2、2)。5、d(x(2)=d(2)(x(2)+Arr(i,5):把相同生產(chǎn)型號和相同返修原因的返修數(shù)量加入字典d(2),達(dá)到匯總的目的。6、x=Arr(i,2)&|&Arr(i,4)&|&Arr(i,6):把生產(chǎn)型號和返修原因和報廢原因連起來賦給變量x(3)。7、d(x(3)=d(x(3)+Arr(i,7):把相同生產(chǎn)型號和相同返修原因和相同報廢原因的報廢數(shù)量加入字典d(3),達(dá)到匯總的目的。8、Fori=1To3:用一個循環(huán)運用字典的keys方法和items方法把3個字典的關(guān)鍵字和它們的項賦給對應(yīng)的變量。9、Sheet4.Activate:激活表4。10、a3:k1000.ClearConte

3、nts:清空A3:K1000單元格區(qū)域。11、a3:k1000.UnMerge:將該區(qū)域所有的合并單元格分解為獨立的單元格。12、a3:k1000.Borders.LineStyle=xlNone:去除該區(qū)域所有的單元格邊框。13、i3.Resize(d(3).Count,1)=Application.Transpose(t(3):把報廢數(shù)量匯總值的一維數(shù)組轉(zhuǎn)置后賦給I3開始的單元格區(qū)域。14、n=2:把2賦給變量n。因為循環(huán)中要用到n=n+1,而匯總表的起始行是第3行,所以把n的初值定為2。15、Fori=0ToUBound(k(3):在字典d(3)中逐一循環(huán)。16、aa=Split化(i)

4、,T):VBA函數(shù)Split在第6例已經(jīng)講過了。把字典d(3)的關(guān)鍵字分解后賦給變量aa。17、n=n+1:在循環(huán)中每循環(huán)一次行數(shù)就加1。18、Cells(n,2)=aa(0):把aa數(shù)組的第1個元素aa(0),即生產(chǎn)型號,賦給對應(yīng)的單元格;下面兩句分別把aa數(shù)組的第2個元素aa(1),即返修原因,賦給對應(yīng)的單元格;把aa數(shù)組的第3個元素aa(2),即報廢原因,賦給對應(yīng)的單元格。19、Fori=3Ton:從第3行開始逐行循環(huán)。20、Forj=0ToUBound(k(1):在一維數(shù)組k(1)中循環(huán)。21、IfCells(i,2)=k(j)Then:如果生產(chǎn)型號等于字典d(1)的關(guān)鍵字時執(zhí)行下面的

5、語句。22、ceiis(i,3)=t(j):把這個生產(chǎn)型號的生產(chǎn)數(shù)量賦給C列單元格。23、Cells(i,10)=Cells(i,9)/Cells(i,3):把報廢數(shù)量除以生產(chǎn)數(shù)量得到的報廢率賦給J列單元格。24、Cells(i,11)=Cells(i,10):ExitFor:把報廢率賦給K列單元格。退出Forj的循環(huán)。25、Forj=0ToUBound化(2):在一維數(shù)組k(2)中循環(huán)。26、IfCells(i,2)&|&Cells(i,4)=k(2)(j)Then:如果把生產(chǎn)型號和返修原因連起來的值等于字典d(2)的一個關(guān)鍵字時,執(zhí)行下面的代碼。27、Cells(i,5)=t(2)(j):

6、把相同生產(chǎn)型號和相同返修原因的返修數(shù)量賦給E列單元格。28、Cells(i,6)=Cells(i,5)/Cells(i,3):把返修數(shù)量除以生產(chǎn)數(shù)量得到的返修率賦給F列單元格。29、Cells(i,7)=Cells(i,6):ExitFor:把返修率賦給G列單元格。退出Forj的循環(huán)。30、Range(a3:k&n).SortKey1:=Range(b3),Order1:=xlAscending,Key2:=Range(d3),Order2:=xlAscending,Key3:=Range(h3),Order3:=xlAscending,Header:=xlGuess:本句開始給表格數(shù)據(jù)設(shè)置格

7、式了。本句是對A3開始的單元格區(qū)域按B3_升序、D3_升序、H3升序排序。31、Fori=3Ton:從第3行開始逐行循環(huán)。32、IfCells(i,2)Cells(i-1,2)Then:如果B列單元格的值與上一行單元格不相等則執(zhí)行下面的代碼。33、r=r+1:變量r加1以后賦給r。34、ReDimPreserveArr1(1Tor):重新聲明動態(tài)數(shù)組的大小。Preserve是ReDim語句的關(guān)鍵字,當(dāng)改變原有數(shù)組最末維的大小時,使用此關(guān)鍵字可以保持?jǐn)?shù)組中原來的數(shù)據(jù)。35、Arr1(r)=i:把單元格所在的行數(shù)賦給數(shù)組。經(jīng)過這輪循環(huán)就得到了各個生產(chǎn)型號的第一行的行數(shù)。也得到了生產(chǎn)型號的總數(shù)為r個

8、。36、Application.DisplayAlerts=False:把顯示警告設(shè)置為關(guān)閉,因為下面要合并單元格,Excel會顯示一個警告對話框來打斷代碼的運行,所以先關(guān)閉此功能。37、Forj=1Tor:在所有的生產(chǎn)型號中逐一循環(huán)。38、r3=0:r2=0:把兩個變量設(shè)置為零。39、IfjrThen:如果j不等于最后一個生產(chǎn)型號時,執(zhí)行下面的代碼。40、js=Arr1(j+1)-1:把下一個生產(chǎn)型號開始行的上面一行的行數(shù)賦給js。41、否則把最后一行的行數(shù)n賦給js變量。42、ks=Arr1(j):把生產(chǎn)型號的開始行的行數(shù)賦給變量ks。43、Ifjs一ks+11Then:如果結(jié)束行減去開始

9、行再加1的值大于1,就說明這個型號有多行需要合并,執(zhí)行下面的代碼。44、Cells(ks,1).Resize(js-ks+1,1).Merge:A列對應(yīng)的單兀格合并;下面B列和C列相應(yīng)的單元格也合并。45、Cells(ks,1)=j:A列依次填入序號。46、Forii=ksTojs:從開始行到結(jié)束行逐一循環(huán)。47、Ifii=ksThen:這個循環(huán)是為了求得D列返修原因是否有需要合并的單元格,如果ii=ks即是同一個生產(chǎn)型號中第一個返修原因的時候,把行數(shù)賦給動態(tài)數(shù)組,否則如果不等于上一行D列單元格的值時,把行數(shù)賦給動態(tài)數(shù)組的下一個元素。經(jīng)過這輪循環(huán)就得到了這個生產(chǎn)型號每一個返修原因的第一行的行數(shù)

10、。也得到了返修原因的總數(shù)為r2個。48、Forii=1Tor2:在這個循環(huán)中,把D歹U、E列F列相同的返修原因單元格合并,也匯總了G列的總返修率。49、Cells(ks,7).Resize(js-ks+1,1).Merge:把G列的總返修率單元格區(qū)域合并。50、Forii=ksTojs:從開始行到結(jié)束行逐一循環(huán)。這個循環(huán)是為了求得H列報廢原因是否有需要合并的單元格,經(jīng)過這輪循環(huán)就得到了這個生產(chǎn)型號每一個報廢原因的第一行的行數(shù)。也得到了報廢原因的總數(shù)為3個。51、Forii=1Tor3:在這個循環(huán)中,把H歹U、I列J列相同的報廢原因、報廢數(shù)量和報廢率單元格合并,也匯總了K列的總報廢率。52、Range(a3:k&n).Borders.LineStyle=1:把A3開始的單元格區(qū)域設(shè)置邊框。53、Application.DisplayAlerts=True:開啟程序顯示警告。54、Application.ScreenUpdating=True:開啟屏幕更新。代碼執(zhí)行后如圖實例12-2所示。圖實例12-2示例常見字典用法實例集錦到此告一段落了。字典就象一個二維數(shù)組Ar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論