亚洲乱码电影_久久精品视频免费播放_国产成人综合av_91精品啪在线观看国产81旧版

歡迎來到酷云建站平臺,全網營銷云系統加盟中心!

海量企業網站模板 · 任您選擇

美出特色,精出品質,一切為了企業更好的營銷

隱藏側欄
Beta
轉載

提高Excel中Vba的運行速度的例子

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

  Vba做為提高Excel工作效率的一種重要方法,被廣大的Excel Fans們廣泛使用。但Vba作為一種腳本語言,其執行效率不會有想象的那么飛速,特別是編寫一些比較復雜的代碼時,但我們可以對我們編寫的代碼進行優化,以便于最大限度的提高代碼的運行效率。

  1、使用Excel原有的函數來進行計算
假如您采用循環的方式進行平均數的求解

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

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

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

希望同學們舉一反三,能采用Excel自帶函數、屬性解決的問題,盡量不要自行擴展代碼解決。

 

2、盡量減少使用對象引用,尤其在循環中
每一個Excel對象的屬性、方法的調用都需要通過OLE接口的一個或多個調用,這些OLE調用都是需要時間的,減少使用對象引用能加快VBA代碼的運行。例如

1.使用With語句

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

則以下語句比上面的快

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

  (在With內部執行時,VB將在內存中維護一個臨時對象,既如下面方法中一樣相當于使用了一個臨時變量,只是該臨時變量是由系統定義系統命名的變量)

  2.使用對象變量
  如果你發現一個對象引用被多次使用,則你可以將此對象用Set 設置為對象變量,以減少對對象的訪問。如:

 

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

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

 

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

  3.在循環中要盡量減少對象的訪問

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

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

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

  3、減少對象的激活和選擇

 代碼如下復制代碼

  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、關閉屏幕更新
  這應該是大多數使用Vba的童鞋都知道的方法,也是最有效的方法,但需要注意一點,就是關閉屏幕刷新后一定要記得,代碼運行完畢后重新打開,特別是運行出錯的時候要有正確的錯誤處理,來保障屏幕刷新可以重新被打開:

 代碼如下復制代碼
  Application.ScreenUpdate = False
    '關閉屏幕刷新
    On Error Goto ErrLab
  ErrLab:
  Application.ScreenUpdate = True

    '打開屏幕刷新


--結束END--

本文鏈接: http://www.42wzzl.com/resources/office/1396.html (轉載時請注明來源鏈接)

 
本文標簽: 全部

下班PC閱讀不方便?

手機也可以隨時學習開發

微信關注公眾號“酷云”
"酷云平臺前端開發教學"
每日干貨技術分享
 

×

成為 酷云平臺 代理商!

關注

微信
關注

微信掃一掃
獲取最新優惠信息

酷云平臺公眾號

客服

聯系
客服

很高興為您服務
尊敬的用戶,歡迎您咨詢,我們為新用戶準備了優惠好禮。 咨詢客服

聯系客服:

在線QQ: 3206174

客服電話: 0516-83703228

售前咨詢 售后服務
在線交談 智能小云

工作時間:

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

WAP

手機
訪問

移動端訪問
手機上也能選模板

酷云平臺手機端