


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、【VBA 教材】 50. 常用語(yǔ)句透析(二十四)貢獻(xiàn)者: 羅剛君日期: 2009-12-01 閱讀: 1320相關(guān)標(biāo)簽: pub2007VBAWith 語(yǔ)句在前面的章節(jié)中已經(jīng)多次提到,本節(jié)開始對(duì)With 語(yǔ)句的用途、語(yǔ)法及常見錯(cuò)誤進(jìn)行分析。With 語(yǔ)可以在一個(gè)單一對(duì)象或一個(gè)用戶定義類型上執(zhí)行一系列的語(yǔ)句。它的主要作用是簡(jiǎn)化代碼、提升執(zhí)行速度及減少變量的使用。1. 簡(jiǎn)化代碼例如某個(gè)對(duì)象在一個(gè)過(guò)程需要多次調(diào)用,那么With 語(yǔ)句可以在編寫代碼時(shí)只寫一次,卻可以達(dá)成多次效用的效果。這對(duì)于代碼的簡(jiǎn)化有很大的作用。例如對(duì)單元格添加數(shù)據(jù)有效性,不用With 語(yǔ)句的代碼如下:_Sub 對(duì) B1 設(shè)置數(shù)據(jù)有
2、效性1()Worksheets(生產(chǎn)表 ).B1.Validation.DeleteWorksheets(生產(chǎn)表 ).B1.Validation.Add Type:=xlValidateList, Formula1:=$A$1:$A$8Worksheets(生產(chǎn)表 ).B1.Validation.IgnoreBlank = trueWorksheets(生產(chǎn)表 ).B1.Validation.InCellDropdown = trueWorksheets(生產(chǎn)表 ).B1.Validation.InputTitle = 提示 Worksheets(生產(chǎn)表 ).B1.Validation.Inp
3、utMessage = 數(shù)據(jù)來(lái)源是A1:A8Worksheets(生產(chǎn)表 ).B1.Validation.ShowInput = trueWorksheets(生產(chǎn)表 ).B1.Validation.ShowError = trueEnd Sub_編輯版 word上面代碼比較容易閱讀,然而寫法過(guò)于臃腫。用With 語(yǔ)句簡(jiǎn)化后代碼如下:Sub 對(duì) B1 設(shè)置數(shù)據(jù)有效性2()With Worksheets(生產(chǎn)表 ).B1.Validation.Delete.Add Type:=xlValidateList, Formula1:=$A$1:$A$8.IgnoreBlank = true.InCel
4、lDropdown = true.InputTitle = 提示 .InputMessage = 數(shù)據(jù)來(lái)源是 A1:A8.ShowInput = true.ShowError = trueEnd WithEnd Sub_很顯然 With 語(yǔ)句在簡(jiǎn)化代碼中有著不可小覷的貢獻(xiàn)。2. 提升速度仍然以上面的兩段代碼為例,稍加修改,進(jìn)行比較,可以證實(shí)With 語(yǔ)句對(duì)循環(huán)語(yǔ)句可以大大提速。_Sub 對(duì) B1 設(shè)置數(shù)據(jù)有效性1()Dim tim As Longtim = Timer編輯版 wordFor i = 1 To 1000Worksheets(生產(chǎn)表 ).B1.Validation.DeleteWo
5、rksheets(生產(chǎn)表 ).B1.Validation.Add Type:=xlValidateList, Formula1: =$A$1:$A$8Worksheets(生產(chǎn)表 ).B1.Validation.IgnoreBlank = trueWorksheets(生產(chǎn)表 ).B1.Validation.InCellDropdown = trueWorksheets(生產(chǎn)表 ).B1.Validation.InputTitle = 提示 Worksheets(生產(chǎn)表 ).B1.Validation.InputMessage = 數(shù)據(jù)來(lái)源是A1:A8Worksheets(生產(chǎn)表 ).B1.V
6、alidation.ShowInput = trueWorksheets(生產(chǎn)表 ).B1.Validation.ShowError = trueNext iMsgBox Format(Timer - tim, 0.00) & 秒End Sub_Sub 對(duì) B1 設(shè)置數(shù)據(jù)有效性2()Dim tim As Longtim = TimerFor i = 1 To 1000With Worksheets(生產(chǎn)表 ).B1.Validation.Delete.Add Type:=xlValidateList, Formula1:=$A$1:$A$8.IgnoreBlank = true.InCellD
7、ropdown = true.InputTitle = 提示 編輯版 word.InputMessage = 數(shù)據(jù)來(lái)源是 A1:A8.ShowInput = true.ShowError = trueEnd WithNext iMsgBox Format(Timer - tim, 0.00) & 秒End Sub_兩段都是對(duì) B1 單元格添加有效性設(shè)置,為了更容易看出區(qū)別,將程序循環(huán)執(zhí)行1000次。分別執(zhí)行以上兩段代碼,它們最后所報(bào)告的執(zhí)行時(shí)間會(huì)差異兩倍左右。3. 減少變量有一種特殊的對(duì)象,無(wú)法多次引用。如果第二次調(diào)用它,那么將產(chǎn)生不同的對(duì)象,而不是第一次引用的對(duì)象。這主要在新建一個(gè)對(duì)象時(shí)會(huì)涉
8、及。通常解決這個(gè)問題是采用變量來(lái)取代它,那么以后調(diào)用這個(gè)變量即可。但程序中變量太多會(huì)對(duì)程序的執(zhí)行效率產(chǎn)生副作用。那么剩下的方案就是使用With 語(yǔ)句了。例如在工作簿中建立一個(gè)新工作表,并進(jìn)行命名、移動(dòng)處理。使用變量的處理方式是:_Sub 建立總表且移至最后 ()Dim sht As Worksheet聲明一個(gè)工作表對(duì)象Set sht = Worksheets.Add將新表賦予與變量sht.Name = 總表 設(shè)置新表的名稱sht.Move after:=Sheets(Sheets.Count)移動(dòng)新表編輯版 wordEnd Sub_對(duì)于“Worksheets.Add”這類新建對(duì)象,是不能多次引
9、用的,如果直接對(duì)對(duì)象賦值,那么每個(gè)賦值都會(huì)產(chǎn)生一個(gè)新的對(duì)象。例如下面代碼:_Sub 建立總表且移至最后2()Worksheets.Add.Name = 總表 設(shè)置新表的名稱Worksheets.Add.Move after:=Sheets(Sheets.Count)移動(dòng)新表End Sub_該過(guò)程中兩次“Worksheets.Add”代表了兩個(gè)對(duì)象,會(huì)產(chǎn)生兩個(gè)新工作表。如果改用 With 語(yǔ)句則可以完美地處理以上所提到的兩個(gè)問題。With 語(yǔ)句如下:Sub 建立總表且移至最后3()With Worksheets.Add創(chuàng)建一個(gè)工作表對(duì)象,后續(xù)可以多次調(diào)用這個(gè)對(duì)象.Name = 總表 設(shè)置 With 對(duì)象的名稱.Move
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 磚瓦行業(yè)發(fā)展趨勢(shì)與國(guó)際市場(chǎng)分析考核試卷
- 探究雙十二與傳統(tǒng)媒體的互動(dòng)
- 碩士之路:策略與指導(dǎo)
- 江西省婺源縣重點(diǎn)達(dá)標(biāo)名校2025年下學(xué)期初三語(yǔ)文試題強(qiáng)化訓(xùn)練考試試卷含解析
- 山東省濰坊市昌樂縣2025屆高三下學(xué)期總復(fù)習(xí)質(zhì)量調(diào)查(二)英語(yǔ)試題試卷含解析
- 克拉瑪依職業(yè)技術(shù)學(xué)院《移動(dòng)營(yíng)銷設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津河北區(qū)市級(jí)名校2025年初三第二次統(tǒng)測(cè)化學(xué)試題試卷含解析
- 江蘇省揚(yáng)州市、儀征市2025年新中考語(yǔ)文試題總復(fù)習(xí)含解析
- 皖西衛(wèi)生職業(yè)學(xué)院《茶樹分子生物學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇省泰興市實(shí)驗(yàn)達(dá)標(biāo)名校2025年下學(xué)期4月月考初三數(shù)學(xué)試題試卷含解析
- 空氣動(dòng)力學(xué)領(lǐng)域大模型研究思考與展望
- 2mm土工膜長(zhǎng)絲土工布檢測(cè)報(bào)告合格證
- 某危廢處置公司事故風(fēng)險(xiǎn)辨識(shí)、評(píng)估報(bào)告
- 《神經(jīng)外科顯微手術(shù)機(jī)器人平臺(tái)關(guān)鍵技術(shù)研究》
- 隧道應(yīng)急救援培訓(xùn)
- GB/T 44713-2024節(jié)地生態(tài)安葬服務(wù)指南
- 2024年大學(xué)生求職面試技巧培訓(xùn)課件
- 一年級(jí)家長(zhǎng)會(huì)課件2024-2025學(xué)年
- 省級(jí)啤酒代理權(quán)合同
- DB11∕T 1513-2018 城市綠地鳥類棲息地營(yíng)造及恢復(fù)技術(shù)規(guī)范
- 綜合實(shí)踐課件高中
評(píng)論
0/150
提交評(píng)論