中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VB,VBA優(yōu)化技巧整理
《Word非常接觸》目錄
[分享] 分享一些關(guān)于VBA代碼優(yōu)化提速的資料 [復(fù)制鏈接]
說明:下面的資源是在網(wǎng)上收集到的關(guān)于VB的代碼優(yōu)化提速技巧的資料,鑒于VBA與VB的關(guān)系,資料中絕大多數(shù)技巧對于VBA同樣適用。其中的大多數(shù)代碼都是親自在VBA中測試過的,某些地方加了一點注解。
(1)固定長度字符串?dāng)?shù)組:賦值快,釋放快!
          固定長度字符串的處理速度通常慢于可變長度字符串,這是因為所有的VB字符串函數(shù)和命令只能識別可變長度字符串.因此,所有固定長度字符串必然被轉(zhuǎn)換為可變長度字符串.
          但是,由于固定長度字符串?dāng)?shù)組占據(jù)著一塊連續(xù)的內(nèi)存區(qū)域,因此在被分配以及釋放時,速度明顯快于可變長度的數(shù)組.比如:在一個Pentium 233MHz機器上,對于一個固定長度為100,000的數(shù)組,給其中30個位置分配數(shù)值,大約只花費半秒種的時間.而如果是可變長度的數(shù)組,同樣的操作要耗費8秒之多!后者的刪除操作耗時大約0.35秒,但固定長度的數(shù)組幾乎可以立即"斃命"!如果應(yīng)用程序中涉及到這么大的一個數(shù)組操作,選擇固定長度方式數(shù)組絕對是確定無疑的了,無論是分配數(shù)值,還是釋放操作,都可以風(fēng)馳電掣般完成.
(2)所有的比較操作結(jié)果或者是0(false),或者是-1(True).所以,下面例子中的2段代碼是完全相同的,但是第2段要運行得快些:
1、傳統(tǒng)方法:
01.If SomeVar > SomeOtherVar Then
02.x = x + 1
03.End If
2、更簡練的方法
01.x = x - (SomeVar > SomeOtherVar)
http://www.cnblogs.com/dxy1982/archive/2011/09/17/2159544.html

Excel VBA 學(xué)習(xí)總結(jié) - 代碼優(yōu)化之道

代碼規(guī)范的優(yōu)化
  優(yōu)化了算法,采用了合適的函數(shù)和對象實現(xiàn)了算法后,代碼其實還是有優(yōu)化的空間,比如編程習(xí)慣,代碼風(fēng)格等,下面從這些方面總結(jié)一下。
1、盡量減少無用的操作,如對象的激活和選擇
事實上大多數(shù)情況下激活和選擇操作都只是有一點視覺效果,但很遺憾這對于VBA來說不是必需的。例如:

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

With Sheets(″Sheet3″)
 .Range(″A1″).Value = 100
 .Range(″A2″).Value = 200
End With
2、盡量減少使用對象引用,即減少“.”的使用,尤其在循環(huán)中
每一個Excel對象的屬性、方法的調(diào)用都需要通過OLE接口的一個或多個調(diào)用,這些OLE調(diào)用都是需要時間的,減少使用對象引用能加快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
(2)使用對象變量。
  如果你發(fā)現(xiàn)一個對象引用被多次使用,則你可以將此對象用Set 設(shè)置為對象變量,以減少對對象的訪問。如:
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)在循環(huán)中要盡量減少對象的訪問。

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)在循環(huán)中要盡量減少對象的訪問。
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、有效地使用數(shù)組與變量,盡量少使用單元格直接參與計算
  通常單元格的操作都比較慢,可以先將單元格的值讀入變量或數(shù)組變量,對變量進行運算,這樣可以提高處理的速度。處理結(jié)束以后,只要用一個語句就可以將數(shù)組中的數(shù)據(jù)傳遞回單元格區(qū)域中。
  在創(chuàng)建已知元素的確定數(shù)組時,使用Array函數(shù)對于節(jié)約空間和時間以及寫出更具效率的代碼是非常理想的。例如:
Dim Names As Variant
Names=Array(“Fan”,“Yang”,“Wu”,“Shen”)   此外,應(yīng)該盡量使用固定大小的數(shù)組。如果確實選擇使用了動態(tài)數(shù)組,應(yīng)該避免數(shù)組每增加一個元素就改變一次數(shù)組的大小,最好是每次增加一定數(shù)量的元素。
下面是一些擴展讀物,有興趣的同學(xué)可以試試看:
vba執(zhí)行速度慢的對策
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
VBA系列講座(6):提高Excel中VBA的效率
Excel VBA(宏)精簡(五)
如何在vfp中調(diào)用excel實現(xiàn)圖、表的制作(之二)
提高Excel中Vba的運行速度的例子
VBA基礎(chǔ)--對象操作
Excel VBA 學(xué)習(xí)總結(jié)
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服