国产精品无码av有声小说-天堂av2024-久久国产剧情-午夜视频一区-国内自拍xxxx18-男女啪啪免费-在线国产福利-中文字幕在线三区-天天艹日日干-色眯眯视频-天天干天天操天天爱-性欧美丰满熟妇xxxx性久久久-精品国产一区二区在线-污视频网站免费在线观看-98久久久-日日夜夜爽爽-乌克兰性欧美精品高清

歡迎來(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     254     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://m.sh-linbin.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ù)
尊敬的用戶(hù),歡迎您咨詢(xún),我們?yōu)樾掠脩?hù)準(zhǔn)備了優(yōu)惠好禮。 咨詢(xún)客服

聯(lián)系客服:

在線(xiàn)QQ: 3206174

客服電話(huà): 0516-83703228

售前咨詢(xún) 售后服務(wù)
在線(xiàn)交談 智能小云

工作時(shí)間:

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

WAP

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

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

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

白山市| 武陟县| 景泰县| 赫章县| 金秀| 施甸县| 瓦房店市| 承德市| 卢氏县| 岑巩县| 四川省| 定州市| 阳高县| 鄱阳县| 和静县| 湖南省| 抚宁县| 明水县| 鞍山市| 三原县| 兴国县| 磐安县| 克山县| 刚察县| 湘乡市| 鸡泽县| 黑河市| 崇文区| 莱芜市| 灌南县| 望江县| 泰和县| 波密县| 普兰县| 东安县| 夏津县| 平舆县| 富民县| 滦平县| 泰来县| 台山市|