VBA代碼操作代碼_第1頁
VBA代碼操作代碼_第2頁
VBA代碼操作代碼_第3頁
VBA代碼操作代碼_第4頁
VBA代碼操作代碼_第5頁
已閱讀5頁,還剩2頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、VBA代碼操作代碼dadaV20190409VBE對象是根對象,表示在VBA編輯器中存在的所有對象的最上層對象,常用對象如下:1、VBAproject對象:VBE編輯器中的工程2、VBComponents對象:表示工程中所有的部件集合,包括Excel對象、窗體、模塊、類模塊。3、CodeModule對象:表示部件中相關的代碼操作VBE需要做的工作1設置信任excel2003中,工具-宏-安全性-可靠發行商,選中常信任對于.,excel2007和excel2010,開發工具-安全性-宏設置-選中對.的信任2引用OptionExplicit一、返回模塊的行數Sub返回模塊A中的總行數()MsgBo

2、xThisWorkbook.VBProject.VBComponents(A).CodeModule.CountOfLinesEndSubSub返回過程test中的總行數()MsgBoxThisWorkbook.VBProject.VBComponents(A).CodeModule.ProcCountLines(test,vbext_pk_Proc)EndSubSub返回過程fe中開始行數()MsgBoxThisWorkbook.VBProject.VBComponents(A).CodeModule.ProcBodyLine(fe,vbext_pk_Proc)EndSubvbext_pk_

3、Get指定一個返回屬性值的過程vbext_pk_Let指定一個賦值給屬性的過程vbext_pk_Set指定一個給對象設置引用的過程vbext_pk_Proc指定所有過程除了Property過程二、返回模塊的內容Sub返回過程fe中的所有代碼()Dim開始行數,總行數WithThisWorkbook.VBProject.VBComponents(A).CodeModule開始行數=.ProcBodyLine(fe,vbext_pk_Proc)總行數=.ProcCountLines(fe,vbext_pk_Proc)MsgBox.Lines(開始行數,總行數)EndWithEndSubSub返回第

4、7行所在的過程名()MsgBoxThisWorkbook.VBProject.VBComponents(A).CodeModule.ProcOfLine(7,vbext_pk_Proc)EndSub判斷模塊和過程是否存在Sub判斷A模塊是否存在()OnErrorResumeNextIfThisWorkbook.VBProject.VBComponents(c)IsNothingThenMsgBoxB模塊沒有存在ElseMsgBoxB模塊存在EndIfEndSubSub判斷是否存在b過程()OnErrorResumeNextDim開始行數開始行數ThisWorkbook.VBProject.VB

5、Components(A).CodeModule.ProcBodyLine(B,vbext_pk_Proc)IfErr.Number=35ThenMsgBox不存在B過程ElseMsgBox存在B過程EndIfEndSub返回工程中所有部件名稱Sub顯示部件列表()DimxAsByteWithThisWorkbook.VBProjectForx=1To.VBComponents.CountCells(x+1,1)=.VBComponents(x).NameCells(x+1,2)=.VBComponents(x).TypeNextxEndWithEndSubOptionExplicit1添加模

6、塊Sub添加新模塊B()WithThisWorkbook.VBProject.VBComponents.Add(vbext_ct_StdModule).Name=BEndWithEndSubvbext_ct_ClassModule將一個類模塊添加到集合vbext_ct_MSForm將窗體添加到集合vbext_ct_StdModule將標準模塊添加到集合2在模塊中添加代碼Sub添加新過程()Dimsr,codesr=SubABC()&vbCrLf&Msgbox測試添加代碼&vbCrLf&EndSubMsgBoxsrWithThisWorkbook.VBProject.VBComponents(B

7、).CodeModule.AddFromStringsrEndWithEndSub3在模塊中插入代碼Sub在B模塊中的第3行插入一行代碼()WithThisWorkbook.VBProject.VBComponents(B).CodeModule.InsertLines3,sheets(1).SelectEndWithEndSub四、刪除模塊、過程、代碼1刪除模塊Sub刪除B模塊()WithThisWorkbook.VBProject.VBComponents.RemoveThisWorkbook.VBProject.VBComponents(B)EndWithEndSub2刪除過程Sub刪除

8、B模塊中的ABC過程()Dim開始行數,總行數WithThisWorkbook.VBProject.VBComponents(B).CodeModule開始行數=.ProcBodyLine(ABC,vbext_pk_Proc)總行數=.ProcCountLines(ABC,vbext_pk_Proc).DeleteLines開始行數,總行數EndWithEndSub五、導入、導出和替換一個模塊或代碼Sub導出一個模塊()ThisWorkbook.VBProject.VBComponents(A).ExportD:/A.basEndSubSub導入一個模塊()ThisWorkbook.VBPro

9、ject.VBComponents.ImportD:/A.basEndSubSub替換一個模塊()先刪除模塊,然后導入新模塊ThisWorkbook.VBProject.VBComponents.RemoveThisWorkbook.VBProject.VBComponents(A)ThisWorkbook.VBProject.VBComponents.ImportD:/A.basEndSubSub替換A模塊的B程序第一行代碼()Dim開始行數WithThisWorkbook.VBProject.VBComponents(B).CodeModule開始行數=.ProcBodyLine(ABC,

10、vbext_pk_Proc).ReplaceLine開始行數+1,MsgBox修改后EndWithEndSub六、模塊的查找Find(查找內容,開始行數,開始列始,結束行數,結束列數,是否匹配)Sub在B模塊中查找()WithThisWorkbook.VBProject.VBComponents(B).CodeModuleMsgBox.Find(我,1,1,1,1)EndWithEndSubSub引用列表()Dimref,iForEachrefInThisWorkbook.VBProject.Referencesi=i+1Cells(i,1)=ref.NameCells(i,2)=ref.Fu

11、llPathCells(i,3)=ref.DescriptionNextrefEndSubSub弓1用IDE()D:ProgramThisWorkbook.VBProject.References.AddFromFileD:ProgramFilesVB98VB6EXT.OLBEndSubSub添加字典引用()ThisWorkbook.VBProject.References.AddFromFileC:WindowsSystem32scrrun.dllEndSubSub給文件添加模塊()DimwbAsWorkbook,phAsStringApplication.DisplayAlerts=Fal

12、seph=ThisWorkbook.Path&Setwb=Workbooks.Open(ph&test.xls)ThisWorkbook.VBProject.VBComponents(A).Exportph&A.basWindows(wb.Name).Visible=Truewb.VBProject.VBComponents.Importph&A.baswb.CloseTrueSetwb=NothingKillph&A.basApplication.DisplayAlerts=TrueEndSubSub()DimwbAsWorkbook,phAsStringApplication.DisplayAlerts=Falseph=ThisWorkboo

溫馨提示

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

評論

0/150

提交評論