版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——VBA宏編程操作指南
VBA宏編程操作指南
修訂記錄版本V1.0日期2023-3-17jingpengtao說(shuō)明VBA基礎(chǔ)教程,不用自己寫(xiě)代碼,不用看懂代碼也可以寫(xiě)出適合自己工作的宏。
目錄1.11.21.31.41.51.61.7第一部分:關(guān)鍵代碼解釋3其次部分:如何錄制宏9第三部分:實(shí)例解釋假使編寫(xiě)宏10第四部分:如何確定在哪個(gè)位置插入關(guān)鍵代碼呢?20第五部分:如何調(diào)試宏20第六部分:分塊合成VBA代碼22第七部分:個(gè)人心得25
1/25
VBA宏編程操作指南
序:EXCEL在我們平日的生活工作中有著廣泛和重要的應(yīng)用,特別是對(duì)于每天和大量數(shù)據(jù)打交道的人員更重要,但同時(shí)對(duì)大量數(shù)據(jù)的操作又顯得是那么的繁瑣,一不防備就很簡(jiǎn)單出錯(cuò),對(duì)于每天都需要用EXCEL做同樣事情的人來(lái)說(shuō),要是能夠有一種工具來(lái)自動(dòng)做工作就好了。EXCEL宏就是一個(gè)解決此類(lèi)問(wèn)題的方法,編寫(xiě)好一個(gè)實(shí)用的EXCEL宏可以大幅度提高工作效率和質(zhì)量,因此把握宏編程顯得尤為重要。但是并不是每個(gè)人都學(xué)過(guò)編程,都了解VBA語(yǔ)言,那么怎樣才能快速學(xué)習(xí)和把握應(yīng)用宏呢?下面我就根據(jù)我個(gè)人的學(xué)習(xí)經(jīng)驗(yàn)及理解來(lái)教大家如何學(xué)習(xí)VBA編程。不需要理解代碼的含義,不需要知道哪一步操作是什么代碼,只要你會(huì)復(fù)制粘貼,就能夠?qū)懗鯡XCEL宏,提高你的工作效率。俗話(huà)說(shuō):“授之以魚(yú),不如授之以漁〞,所以替人寫(xiě)宏不如教給他方法,也便利各自修改。學(xué)完本教程,寫(xiě)一些簡(jiǎn)單的宏確定可以。編寫(xiě)本教程的目的就是為了便利經(jīng)常和數(shù)據(jù)打交道的同事朋友,能夠各自根據(jù)需要編寫(xiě)自己的宏。
備注:由于本教程V1、0版本只是針對(duì)從未接觸過(guò)VBA語(yǔ)言及剛?cè)腴T(mén)的人員編寫(xiě)的,并未涉及更詳細(xì)的代碼分析及條件語(yǔ)句,循環(huán)語(yǔ)句,數(shù)據(jù)語(yǔ)句等,將會(huì)在后期的版本更新中不斷完善。
由于編者水平經(jīng)驗(yàn)有限,難免會(huì)有一些不足之處,還望多多包涵。
2/25
VBA宏編程操作指南
第一部分:1.1第一部分:關(guān)鍵代碼解釋1、DimstrAsStringstr=ThisWorkbook.Path\***.xlsWorkbooks.Openstr代碼解釋?zhuān)鹤詣?dòng)開(kāi)啟文件名為“***〞,屬性為xls的文件。同時(shí)xlsx,csv文件也可開(kāi)啟。實(shí)際應(yīng)用:假使你的宏執(zhí)行需要好多文件,那么就可以再一開(kāi)始就先執(zhí)行
開(kāi)啟每個(gè)文件,如:DimstrAsStringstr=ThisWorkbook.Path\日常數(shù)據(jù)模板.xlsWorkbooks.Openstrstr=ThisWorkbook.Path\臨時(shí)表.xlsWorkbooks.Openstrstr=ThisWorkbook.Path\擾碼分布表.xlsWorkbooks.Openstr
2、Windows(***.xls).ActivateWorkbooks(***.xls).CloseSaveChanges:=False代碼解釋?zhuān)宏P(guān)閉文件名為“***〞,屬性為xls的文件等。其中SaveChanges:=False意為不保存直接關(guān)閉該文件,假使SaveChanges:=True,則表示保存之后再關(guān)閉該文件。實(shí)際應(yīng)用:在執(zhí)行完所有的代碼之后關(guān)閉各個(gè)已開(kāi)啟的文件,對(duì)于需要保存數(shù)據(jù)的SaveChanges:=True即可,對(duì)于不需要保存數(shù)據(jù)的SaveChanges:=False。如:Windows(日常數(shù)據(jù)模板.xls).ActivateWorkbooks(日常數(shù)據(jù)模板.xls).CloseSaveChanges:=FalseWindows(擾碼分布表.xls).ActivateWorkbooks(擾碼分布表.xls).CloseSaveChanges:=TrueWindows(臨時(shí)表.xls).ActivateWorkbooks(臨時(shí)表.xls).CloseSaveChanges:=False
3/25
VBA宏編程操作指南
3、i=1While(Cells(i,1))i=i+1WendCells(i,1).SelectActiveSheet.Paste代碼解釋?zhuān)捍硕握Z(yǔ)句主要是對(duì)單元格進(jìn)行判斷,是否為空白,假使為空白,則執(zhí)行粘貼。具體解釋請(qǐng)看下圖:
假使你要把N個(gè)不同EXCEL的內(nèi)容粘貼到一個(gè)新的EXCEL里,也就是匯總所有的數(shù)據(jù)。假使第一個(gè)EXCEL內(nèi)容有13行,其次個(gè)EXCEL內(nèi)容有18行,第三個(gè)EXCEL內(nèi)容有20行,等等。可能你會(huì)說(shuō)直接定位到單元格不行嗎?當(dāng)然,對(duì)于每天固定行數(shù)的EXCEL,是可以的,但是假使每天的數(shù)據(jù)都在變,今天第一個(gè)EXCEL有17行,其次天又變?yōu)?0行,其次個(gè)EXCEL今天有20行,其次天變?yōu)?5行,這樣你就沒(méi)法使用固定的單元格定位粘貼數(shù)據(jù)了。因此就需要上面的代碼。語(yǔ)句類(lèi)型為While……Wend……While(Cells(i,1))Cells(i,1)當(dāng)i=1,表示A1單元格,也就是當(dāng)A1單元格不為空白的時(shí)候,執(zhí)行i=i+1,也就是接著判斷A2是不是空白,依次類(lèi)推……當(dāng)執(zhí)行到Ai為空白時(shí)(如上圖則表示執(zhí)行到A14),執(zhí)行Cells(i,1).SelectActiveSheet.Paste,也就是選中A14單元格,進(jìn)行粘貼。這樣通過(guò)判斷空白的方法就不會(huì)由于行數(shù)的變動(dòng)而產(chǎn)生影響了。注意:上面我們說(shuō)的只是根據(jù)Cells(i,1)判斷,同樣,也可以根據(jù)Cells(i,2)其次列判斷,Cells(i,3)第三列判斷等,這樣就可以避免由于前面幾列的空白列而導(dǎo)致后面列的判斷出現(xiàn)問(wèn)題。
4/25
VBA宏編程操作指南
4、i=1While(Cells(i,1))i=i+1WendCells(i,1).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.EntireRow.Delete代碼解釋?zhuān)捍硕握Z(yǔ)句主要是對(duì)單元格進(jìn)行判斷,是否為空白,假使為空白,則執(zhí)行該單元格以下所有數(shù)據(jù)的清除。具體解釋請(qǐng)看下圖:
此代碼的和3部分的代碼有相像之處,不同的
地方時(shí)當(dāng)判斷Cells(i,1)為空時(shí),下一步的執(zhí)行不一樣。Range(Selection,Selection.End(xlDown)).SelectSelection.EntireRow.Delete此語(yǔ)句執(zhí)行之后如下:
也就是當(dāng)Cells(i,1)為空時(shí)(本圖表示A13為空時(shí)),從A13開(kāi)始清除A13往右以及5/25
VBA宏編程操作指南
往下所有的數(shù)據(jù)。此語(yǔ)句主要用途:修正自動(dòng)填充導(dǎo)致的數(shù)據(jù)超出計(jì)劃。Range(A2).SelectSelection.AutoFillDestination:=Range(A2:A10)
假使你有A1-A12小區(qū)CI需要關(guān)聯(lián)小區(qū)擾碼,當(dāng)你在B2單元格通過(guò)VLOOKUP關(guān)聯(lián)數(shù)據(jù)時(shí),你確定需要讓B2自動(dòng)填充到B12。但是假使你每天都需要關(guān)聯(lián)數(shù)據(jù),而每次數(shù)據(jù)都會(huì)變化,即今天要關(guān)聯(lián)A1-A12,明天是A1-A20,這樣就需要自動(dòng)填充到A20,但是EXCEL不是智能的,你第一次設(shè)定的自動(dòng)填充到A12,當(dāng)然不會(huì)變了,這樣就有可能導(dǎo)致數(shù)據(jù)不全。為了解決這個(gè)問(wèn)題,你可以讓EXCEL自動(dòng)填充到第1000行,然后把多余的刪掉就可以了(也就是把20行以后自動(dòng)填充的數(shù)據(jù)自動(dòng)刪除)。如下圖:從B21開(kāi)始出現(xiàn)#N/A,這些數(shù)據(jù)沒(méi)用的,使用i=1While(Cells(i,1))i=i+1WendCells(i,1).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.EntireRow.Delete執(zhí)行之后,B21往下的#N/A都會(huì)清空的。
6/25
VBA宏編程操作指南
5、Application.DisplayAlerts=False代碼解釋?zhuān)涸诤甑膱?zhí)行過(guò)程中出現(xiàn)的告警框不顯示。一般狀況下,假使你執(zhí)行宏,執(zhí)行最終會(huì)出現(xiàn)如下截圖,假使在代碼的最前端加上一句Application.DisplayAlerts=False,那么就不會(huì)顯示這些提醒信息了。
例如上圖表示你再錄制的過(guò)程中需要進(jìn)行分列,我們知道在執(zhí)行分列之后,會(huì)彈出上面的對(duì)話(huà)框要求選擇,假使在代碼的開(kāi)始不增加Application.DisplayAlerts=False,則在執(zhí)行的過(guò)程中會(huì)彈出對(duì)話(huà)框讓我們選擇,點(diǎn)擊確定之后才會(huì)繼續(xù)執(zhí)行。
6、
MsgBox清除成功!ExitSubErr1:MsgBox清除失?。?/25
VBA宏編程操作指南
主要是MsgBox代碼的應(yīng)用,大家可以參考網(wǎng)上的一些資料,一般改代碼都放在最后,會(huì)出現(xiàn)如下的運(yùn)行界面,主要用于提醒信息。
7、ActiveSheet.Range($A$1:$AN$295).AutoFilterField:=12,Criteria1:=10104ActiveWindow.ScrollColumn=8ActiveWindow.ScrollColumn=7ActiveWindow.ScrollColumn=6ActiveWindow.ScrollColumn=5ActiveWindow.ScrollColumn=4ActiveWindow.ScrollColumn=3ActiveWindow.ScrollColumn=2ActiveWindow.ScrollColumn=1ActiveWindow.ScrollColumn=2ActiveWindow.ScrollColumn=3ActiveWindow.ScrollColumn=4Columns(N:N).SelectSelection.CopySelection.PasteSpecialPaste:=xlPasteValues,Operation:=xlNone,SkipBlanks_:=False,Transpose:=FalseActiveWindow.ScrollRow=126ActiveWindow.ScrollRow=501ActiveWindow.ScrollRow=1125ActiveWindow.ScrollRow=1625ActiveWindow.ScrollRow=2250ActiveWindow.ScrollRow=2375ActiveWindow.ScrollRow=2625A
ctiveWindow.ScrollRow=2750ActiveWindow.ScrollRow=2875ActiveWindow.ScrollRow=3000ActiveWindow.ScrollRow=31258/25
VBA宏編程操作指南
ActiveWindow.ScrollRow=3249ActiveWindow.ScrollRow=3374ActiveWindow.ScrollRow=3499ActiveWindow.ScrollRow=3624ActiveWindow.ScrollRow=3749ActiveWindow.ScrollRow=3999類(lèi)似于A(yíng)ctiveWindow.ScrollColumn,ActiveWindow.ScrollRow,等等都是一些無(wú)用的代碼,產(chǎn)生這些代碼的原因就是由于我們拖拽鼠標(biāo),滑動(dòng)鼠標(biāo)的滑輪造成的,這些代碼就是需要我們刪除的,刪除之后并不影響代碼的運(yùn)行,也同時(shí)使我們的代碼變的精簡(jiǎn)美觀(guān)。
其次部分:1.2其次部分:如何錄制宏1、如何錄制宏。首先開(kāi)啟EXCEL2023,點(diǎn)到“開(kāi)發(fā)工具〞那一欄,(注意:有的人開(kāi)啟之后發(fā)現(xiàn)沒(méi)有開(kāi)發(fā)工具那一欄,原因可能是由于從沒(méi)用過(guò)宏,沒(méi)有開(kāi)啟其功能,需要在“信任中心〞下的宏設(shè)置里面設(shè)置為“啟用所有宏〞即可)
2、開(kāi)始錄制宏9/25
VBA宏編程操作指南
點(diǎn)擊錄制宏,如下圖所示,出現(xiàn)一個(gè)對(duì)話(huà)框,輸入宏的名字,點(diǎn)擊確定即可。
之后“錄制宏〞會(huì)變成“中止錄用〞,表示已經(jīng)在錄制過(guò)程中,在這個(gè)過(guò)程中你所進(jìn)行有關(guān)EXCEL的操作都會(huì)被以代碼的形式記錄下來(lái)。
第三部分:1.3第三部分:實(shí)例解釋假使編寫(xiě)宏在你創(chuàng)立一個(gè)宏命令之前,花幾分鐘來(lái)考慮你畢竟想做什么。由于宏命令是一大堆鍵盤(pán)輸入的集合,事先計(jì)劃你的行動(dòng)十分重要。最早的計(jì)劃宏命令的方法是手動(dòng)地將宏命令需要做的事情做一遍。在你做鍵盤(pán)輸入的同時(shí),在一張紙上記錄下他們實(shí)際發(fā)生的狀況,不要漏掉任何東西。象錄音機(jī)一樣,Excel可以將你的所有動(dòng)作錄制下來(lái)(事實(shí)上并非如此,有些操作是無(wú)法錄制的)。假使在錄制宏之前,你沒(méi)有很好地計(jì)劃,你會(huì)錄制好多不必要的步驟,而這些都會(huì)影響運(yùn)行速度。盡管修改宏代碼比去除錄制宏里面不必要的步驟簡(jiǎn)單,但是,僅僅錄制必要的步驟會(huì)節(jié)省你修改代碼的時(shí)間和以后的麻煩。編寫(xiě)宏最簡(jiǎn)單的方法:復(fù)制粘貼刪多余,補(bǔ)頭補(bǔ)尾補(bǔ)關(guān)鍵。
實(shí)例一:實(shí)例一:10/25
VBA宏編程操作指南
TD擾碼規(guī)劃工具的編寫(xiě),看起來(lái)不繁雜。最主要的就是要經(jīng)緯度轉(zhuǎn)換距離這個(gè)工具,當(dāng)然這也是一個(gè)宏,我們不需要了解它,只要知道它的功能是轉(zhuǎn)換距離就行了。
我們需要把宏所有需要的EXCEL文件放在同一個(gè)文件夾里。下面是我依照我的規(guī)劃思路通過(guò)EXCEL宏錄制出來(lái)最原始的代碼:第一步:第一步:進(jìn)行擾碼分組Sub進(jìn)行擾碼分組()''Macro1MacroColumns(N:N).SelectSelection.InsertShift:=xlToRight,CopyOrigin:=xlFormatFromLeftOrAboveRange(N2).SelectActiveCell.FormulaR1C1==INT(RC[-1]/4+1)Range(N2).SelectSelection.AutoFillDestination:=Range(N2:N79)Range(N
2:N79).SelectColumns(N:N).SelectSelection.CopySelection.PasteSpecialPaste:=xlPasteValues,Operation:=xlNone,SkipBlanks_:=False,Transpose:=FalseRows(1:1).SelectApplication.CutCopyMode=FalseSelection.AutoFilterActiveWorkbook.Worksheets(原始表).AutoFilter.Sort.SortFields.ClearActiveWorkbook.Worksheets(原始表).AutoFilter.Sort.SortFields.AddKey:=Range_(N1),SortOn:=xlSortOnValues,Order:=xlAscending,DataOption:=_xlSortNormalWithActiveWorkbook.Worksheets(Sheet1).AutoFilter.Sort.Header=xlYes.MatchCase=False11/25
VBA宏編程操作指南
.Orientation=xlTopToBottom.SortMethod=xlPinYin.ApplyEndWithSelection.AutoFilterEndSub以上代碼是我最開(kāi)始錄制的代碼,我們需要對(duì)其進(jìn)行修改。其實(shí)修改代碼很簡(jiǎn)單,只要找對(duì)位置復(fù)制粘貼就可以了。Application.DisplayAlerts如=False代碼,不管什么宏,只要把這句話(huà)加在代碼的最前面就可以了。紅色標(biāo)注的Range(N2:N1000),注意看是從Range(N2:N79)改為Range(N2:N1000),為什么要改為1000呢?這是由于我們?cè)阡浿坪甑臅r(shí)候,采用的數(shù)據(jù)只有79行,而我們知道每次規(guī)劃的原始數(shù)據(jù)行數(shù)確定會(huì)變化,有可能兩百多行,為了防止數(shù)據(jù)不完全,我們就需要設(shè)置一個(gè)范圍,根據(jù)自己的理解去設(shè)置。由上可知,我們?cè)O(shè)置為最大1000行,但是實(shí)際上的數(shù)據(jù)確定是小于1000行的,這樣我們就需要把多余的行數(shù)刪掉,就需要在代碼后面加上下面這段代碼,這樣就能夠達(dá)到我們想要的效果了。i=1While(Cells(i,1))i=i+1WendCells(i,1).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.EntireRow.Delete
下面是修改之后的代碼。Sub進(jìn)行擾碼分組()''Macro1MacroApplication.DisplayAlerts=FalseColumns(N:N).SelectSelection.InsertShift:=xlToRight,CopyOrigin:=xlFormatFromLeftOrAboveRange(N2).SelectActiveCell.FormulaR1C1==INT(RC[-1]/4+1)Range(N2).SelectSelection.AutoFillDestination:=Range(N2:N1000)i=112/25
VBA宏編程操作指南
While(Cells(i,1))i=i+1WendCells(i,1).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.EntireRow.DeleteRange(N2:N1000).SelectColumns(N:N).SelectSelection.CopySelection.PasteSpecialPaste:=xlPasteValues,Operation:=xlNone,SkipBlanks_:=False,Transpose:=FalseRows(1:1).SelectApplication.CutCopyMode=FalseSelection.AutoFilterActiveWorkbook.Worksheets(原始表).AutoFilter.Sort.SortFields.ClearActiveWorkbook.Worksheets(原始表).AutoFilter.Sort.SortFields.AddKey:=Range_(N1),SortOn:=xlSortOnValues,Order:=xlAscending,DataOption:=_xlSortNormalWithActiveWorkbook.Worksheets(原始表).AutoFilter.Sort.Header=xlYes.MatchCase=False.Orientation=xlTopToBottom.SortMethod=xlPinYin.ApplyEndWithSelection.AutoFilter
EndSub經(jīng)過(guò)我們的稍微修改,復(fù)制粘貼幾個(gè)關(guān)鍵代碼,一個(gè)完整的宏代碼就產(chǎn)生了,是不是覺(jué)得很簡(jiǎn)單
呢?本來(lái)也不難的。
其次步:其次步:經(jīng)緯度轉(zhuǎn)換距離Sub經(jīng)緯度換算距離()''Macro3Macro'Range(F2:G2).Select13/25
VBA宏編程操作指南
Range(Selection,Selection.End(xlDown)).SelectSelection.CopyWindows(經(jīng)緯度算距離.xls).ActivateRange(A2).SelectActiveSheet.PasteWindows(TD擾碼規(guī)劃宏.xls).ActivateRange(F1:G1).SelectApplication.CutCopyMode=FalseSelection.CopyWindows(經(jīng)緯度算距離.xls).ActivateRange(C2).SelectActiveSheet.PasteRange(C2).SelectApplication.CutCopyMode=FalseSelection.AutoFillDestination:=Range(C2:C79)Range(D2).SelectSelection.AutoFillDestination:=Range(D2:D79)Range(E2).SelectSelection.AutoFillDestination:=Range(E2:E79)
Columns(E:E).SelectSelection.CopyColumns(G:G).SelectSelection.PasteSpecialPaste:=xlPasteValues,Operation:=xlNone,SkipBlanks_:=False,Transpose:=FalseRange(G2).SelectRange(Selection,Selection.End(xlDown)).SelectWindows(TD擾碼規(guī)劃宏.xls).ActivateColumns(O:O).SelectApplication.CutCopyMode=FalseSelection.InsertShift:=xlToRight,CopyOrigin:=xlFormatFromLeftOrAboveWindows(經(jīng)緯度算距離.xls).ActivateColumns(G:G).SelectSelection.CopyWindows(TD擾碼規(guī)劃宏.xls).ActivateActiveSheet.PasteRange(A1).SelectApplication.CutCopyMode=FalseActiveWorkbook.SaveEndSub以上是剛開(kāi)始錄制的宏代碼,同樣需要修改。14/25
VBA宏編程操作指南
依照一開(kāi)始介紹的方法修改代碼:補(bǔ)頭,補(bǔ)尾,補(bǔ)關(guān)鍵。Sub經(jīng)緯度換算距離()''Macro3Macro'Application.DisplayAlerts=FalseDimstrAsStringstr=ThisWorkbook.Path\經(jīng)緯度算距離.xlsWorkbooks.Openstr(上面黃色的部分就是“補(bǔ)頭〞)Windows(TD擾碼規(guī)劃宏.xls).ActivateRange(F2:G2).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.CopyWindows(經(jīng)緯度算距離.xls).ActivateRange(A2).SelectActiveSheet.PasteWindows(TD擾碼規(guī)劃宏.xls).ActivateRange(F1:G1).SelectApplication.CutCopyMode=FalseSelection.CopyWindows(經(jīng)緯度算距離.xls).ActivateRange(C2).SelectActiveSheet.PasteRange(C2).SelectApplication.CutCopyMode=FalseSelection.AutoFillDestination:=Range(C2:C1000)Range(C2:C142).SelectRange(D2).SelectSelection.AutoFillDestination:=Range(D2:D1000)Range(D2:D142).SelectRange(E2).SelectSelection.AutoFillDestination:=Range(E2:E1000)i=1While(Cells(i,1))i=i+1WendCells(i,1).SelectRange(Selection,Selection.End(xlDown)).Select15/25
VBA宏編程操作指南
Selection.EntireRow.Delete(上面黃色和紅色的部分就是“補(bǔ)關(guān)鍵〞)Columns(E:E).SelectSelection.CopyColumns(G:G).SelectSelection.PasteSpecialPaste:=xlPasteValues,Operation:=xlNone,SkipBlanks_:=False,Transpose:=FalseRange(G2).SelectRange(Selection,Selection.End(xlDown)).SelectWindows(TD擾碼規(guī)劃宏.xls).ActivateColumns(O:O).SelectApplication.CutCopyMode=FalseSelection.InsertShift:=xlToRight,CopyOrigin:=xlFormatFromLeftOrAboveWindows(經(jīng)
緯度算距離.xls).ActivateColumns(G:G).SelectSelection.CopyWindows(TD擾碼規(guī)劃宏.xls).ActivateActiveSheet.PasteRange(A1).SelectApplication.CutCopyMode=FalseActiveWorkbook.SaveWindows(經(jīng)緯度算距離.xls).ActivateWorkbooks(經(jīng)緯度算距離.xls).CloseSaveChanges:=False(上面黃色的部分就是“補(bǔ)尾〞)EndSub又是一個(gè)只要復(fù)制粘貼就可以補(bǔ)全代碼的例子,找準(zhǔn)位置,寫(xiě)起來(lái)很簡(jiǎn)單的。
下面再貼幾個(gè)代碼來(lái)更好的說(shuō)明下:日常數(shù)據(jù)制作宏是一個(gè)很典型的例子,能夠很好的表現(xiàn)出來(lái)宏代碼的初級(jí)應(yīng)用。就拿日常數(shù)據(jù)制作宏(我只取其中4個(gè)RNC作為例子)來(lái)說(shuō):我們不需要看所有的代碼,只要找到關(guān)鍵部分,然后復(fù)制粘貼就可以了。SubMacro2()''Macro2Macro'DimstrAsStringstr=ThisWorkbook.Path\日常數(shù)據(jù)模板.xls16/25
VBA宏編程操作指南
Workbooks.Openstrstr=ThisWorkbook.Path\RNC1.xlsWorkbooks.Openstrstr=ThisWorkbook.Path\RNC2.xlsWorkbooks.Openstrstr=ThisWorkbook.Path\RNC3.xlsWorkbooks.Openstrstr=ThisWorkbook.Path\RNC4.xlsWorkbooks.Openstr(上面標(biāo)黃色的代碼也就是我們一開(kāi)始就列舉的關(guān)鍵代碼,也就是我們宏所需要的EXCEL文件,宏在執(zhí)行之前需要先開(kāi)啟這些文件,由于在錄制宏的時(shí)候這些代碼是不能被錄制的,所以需要我們手動(dòng)加上去。)'復(fù)制RNC1的小區(qū)參數(shù)信息Windows(RNC1.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B1,B2).SelectRange(Selection,Selection.End(xlToRight)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).SelectRange(A1).SelectActiveSheet.PasteWindows(RNC1.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B5).SelectRange(Selection,Selection.End(xlToRight)).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).Selecti=1While(Cells(i,1))i=i+1WendCells(i,1).SelectActiveSheet.Paste(上面的黃色代碼就是進(jìn)行空格判斷之后,然后再進(jìn)行粘貼的,就是針對(duì)每天都變化的數(shù)據(jù)而采用的代碼。)'復(fù)制RNC2的小區(qū)參數(shù)信息Windows(RNC2.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B1,B2).Select17/25
VBA宏編程操作指南
Range(Selection,Selection.End(xlToRight)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).SelectRange(A1).SelectActiveSheet.PasteWindows(RNC2.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B5).SelectRange(Selection,Selection.End(xlToRight)).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).Selecti=1While(Cells(i,1))i=i+1WendCells(i,1).SelectActiveSheet.Paste
'復(fù)制RNC3的小區(qū)參數(shù)信息Windows(RNC3.xls).
ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B1,B2).SelectRange(Selection,Selection.End(xlToRight)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).SelectRange(A1).SelectActiveSheet.PasteWindows(RNC3.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B5).SelectRange(Selection,Selection.End(xlToRight)).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).Selecti=1While(Cells(i,1))i=i+118/25
VBA宏編程操作指南
WendCells(i,1).SelectActiveSheet.Paste
'復(fù)制RNC4的小區(qū)參數(shù)信息Windows(RNC4.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B1,B2).SelectRange(Selection,Selection.End(xlToRight)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).ActivateSheets(小區(qū)參數(shù)信息).SelectRange(A1).SelectActiveSheet.PasteWindows(RNC4.xls).ActivateSheets(小區(qū)歸屬配置信息表).SelectRange(B5).SelectRange(Selection,Selection.End(xlToRight)).SelectRange(Selection,Selection.End(xlDown)).SelectSelection.CopyWindows(日常數(shù)據(jù)模板.xls).A
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)村宅基地使用權(quán)合同示范
- 職業(yè)介紹服務(wù)合同范文
- 學(xué)校工作實(shí)施方案模版(3篇)
- 2025年學(xué)校周工作總結(jié)參考(2篇)
- 產(chǎn)品工程師工作的主要職責(zé)模版(2篇)
- 企業(yè)單位職業(yè)病防治計(jì)劃和實(shí)施方案范文(2篇)
- 卸油安全操作規(guī)程(2篇)
- 2025年教師年度工作總結(jié)經(jīng)典版(2篇)
- 法務(wù)經(jīng)理崗位的具體職責(zé)模版(2篇)
- 通風(fēng)處業(yè)務(wù)保安責(zé)任制模版(3篇)
- 中建安全標(biāo)準(zhǔn)化圖冊(cè)圖集(上下全集)(全電子版)
- 高一物理必修一思維導(dǎo)圖
- 錨索張拉和鎖定記錄表
- 2016年校本課程--------合唱教案1
- 【原創(chuàng)】《圓柱與圓錐》復(fù)習(xí)課教教學(xué)設(shè)計(jì)
- 《中國(guó)藥典》規(guī)定中藥飲片用量
- 國(guó)網(wǎng)合肥供電公司城市新建住宅小區(qū)電力建設(shè)實(shí)施細(xì)則
- 初中物理元件實(shí)物圖及一些常用圖形
- 中小學(xué)生備戰(zhàn)期末迎接期末考試動(dòng)員班會(huì)PPT
- 房測(cè)之友BMF用戶(hù)說(shuō)明書(shū)
- 國(guó)自然模板(空白版)
評(píng)論
0/150
提交評(píng)論