久草免费在线观看-久草免费在线色站-久草免费在线视频-久草免费资源-天堂网中文在线-天堂网中文字幕

歡迎來(lái)到酷云建站平臺(tái),全網(wǎng)營(yíng)銷(xiāo)云系統(tǒng)加盟中心!

海量企業(yè)網(wǎng)站模板 · 任您選擇

美出特色,精出品質(zhì),一切為了企業(yè)更好的營(yíng)銷(xiāo)

隱藏側(cè)欄
Beta
轉(zhuǎn)載

提高Excel中Vba的運(yùn)行速度的例子

       辦公軟件教程     2016-02-25     eycms     241     0    

  Vba做為提高Excel工作效率的一種重要方法,被廣大的Excel Fans們廣泛使用。但Vba作為一種腳本語(yǔ)言,其執(zhí)行效率不會(huì)有想象的那么飛速,特別是編寫(xiě)一些比較復(fù)雜的代碼時(shí),但我們可以對(duì)我們編寫(xiě)的代碼進(jìn)行優(yōu)化,以便于最大限度的提高代碼的運(yùn)行效率。

  1、使用Excel原有的函數(shù)來(lái)進(jìn)行計(jì)算
假如您采用循環(huán)的方式進(jìn)行平均數(shù)的求解

 代碼如下復(fù)制代碼
For Each c In Range(″A1:A1000″)
  TotalValue = TotalValue + c.Value
Next
AverageValue = TotalValue /Range(″A1:A1000″).Rows.Count

那么上述代碼的執(zhí)行效率,將比下面的代碼低的多

 代碼如下復(fù)制代碼
AverageValue=Application.WorksheetFunction.Average(Range(″A1:A1000″))

希望同學(xué)們舉一反三,能采用Excel自帶函數(shù)、屬性解決的問(wèn)題,盡量不要自行擴(kuò)展代碼解決。

 

2、盡量減少使用對(duì)象引用,尤其在循環(huán)中
每一個(gè)Excel對(duì)象的屬性、方法的調(diào)用都需要通過(guò)OLE接口的一個(gè)或多個(gè)調(diào)用,這些OLE調(diào)用都是需要時(shí)間的,減少使用對(duì)象引用能加快VBA代碼的運(yùn)行。例如

1.使用With語(yǔ)句

 代碼如下復(fù)制代碼
Workbooks(1).Sheets(1).Range(″A1:A1000″).Font.Name=″Pay″
Workbooks(1).Sheets(1).Range(″A1:A1000″).Font.FontStyle=″Bold″ ...

則以下語(yǔ)句比上面的快

 代碼如下復(fù)制代碼
With Workbooks(1).Sheets(1).Range(″A1:A1000″).Font
   .Name = ″Pay″
   .FontStyle = ″Bold″
   ...
End With

  (在With內(nèi)部執(zhí)行時(shí),VB將在內(nèi)存中維護(hù)一個(gè)臨時(shí)對(duì)象,既如下面方法中一樣相當(dāng)于使用了一個(gè)臨時(shí)變量,只是該臨時(shí)變量是由系統(tǒng)定義系統(tǒng)命名的變量)

  2.使用對(duì)象變量
  如果你發(fā)現(xiàn)一個(gè)對(duì)象引用被多次使用,則你可以將此對(duì)象用Set 設(shè)置為對(duì)象變量,以減少對(duì)對(duì)象的訪問(wèn)。如:

 

 代碼如下復(fù)制代碼
  Workbooks(1).Sheets(1).Range(″A1″).Value = 100
   Workbooks(1).Sheets(1).Range(″A2″).Value = 200

  則以下代碼比上面的要快:

 

 代碼如下復(fù)制代碼
 Set MySheet = Workbooks(1).Sheets(1)
  MySheet.Range(″A1″).Value = 100
  MySheet.Range(″A2″).Value = 200

  3.在循環(huán)中要盡量減少對(duì)象的訪問(wèn)

 代碼如下復(fù)制代碼
  For k = 1 To 1000
   Sheets(″Sheet1″).Select
   Cells(k,1).Value = Cells(1,1).Value
  Next k

  則以下代碼比上面的要快:

 代碼如下復(fù)制代碼
  Set TheValue = Cells(1,1).Value
  Sheets(″Sheet1″).Select
  For k = 1 To 1000
   Cells(k,1).Value = TheValue
  Next k

  3、減少對(duì)象的激活和選擇

 代碼如下復(fù)制代碼

  Sheets(″Sheet3″).Select
  Range(″A1″).Value = 100
  Range(″A2″).Value = 200
可改為:

  With Sheets(″Sheet3″)
   .Range(″A1″).Value = 100
   .Range(″A2″).Value = 200
  End With

  4、關(guān)閉屏幕更新
  這應(yīng)該是大多數(shù)使用Vba的童鞋都知道的方法,也是最有效的方法,但需要注意一點(diǎn),就是關(guān)閉屏幕刷新后一定要記得,代碼運(yùn)行完畢后重新打開(kāi),特別是運(yùn)行出錯(cuò)的時(shí)候要有正確的錯(cuò)誤處理,來(lái)保障屏幕刷新可以重新被打開(kāi):

 代碼如下復(fù)制代碼
  Application.ScreenUpdate = False
    '關(guān)閉屏幕刷新
    On Error Goto ErrLab
  ErrLab:
  Application.ScreenUpdate = True

    '打開(kāi)屏幕刷新


--結(jié)束END--

本文鏈接: http://www.u0rvp.cn/resources/office/1396.html (轉(zhuǎn)載時(shí)請(qǐng)注明來(lái)源鏈接)

 
本文標(biāo)簽: 全部

下班PC閱讀不方便?

手機(jī)也可以隨時(shí)學(xué)習(xí)開(kāi)發(fā)

微信關(guān)注公眾號(hào)“酷云”
"酷云平臺(tái)前端開(kāi)發(fā)教學(xué)"
每日干貨技術(shù)分享
 

×

成為 酷云平臺(tái) 代理商!

關(guān)注

微信
關(guān)注

微信掃一掃
獲取最新優(yōu)惠信息

酷云平臺(tái)公眾號(hào)

客服

聯(lián)系
客服

很高興為您服務(wù)
尊敬的用戶,歡迎您咨詢,我們?yōu)樾掠脩魷?zhǔn)備了優(yōu)惠好禮。 咨詢客服

聯(lián)系客服:

在線QQ: 3206174

客服電話: 0516-83703228

售前咨詢 售后服務(wù)
在線交談 智能小云

工作時(shí)間:

周一至周五: 09:00 - 17:00

WAP

手機(jī)
訪問(wèn)

移動(dòng)端訪問(wèn)
手機(jī)上也能選模板

酷云平臺(tái)手機(jī)端