- 1、本文档共63页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA基础教程
* 一、提高VBA執行效率 方法(1)儘量實用VBA原有的屬性 、方法和worksheet函數 例如: For?Each?c?In Worksheet(1).Range(〃A1:A1000〃) TotalValue?=?TotalValue?+?c.Value Next AverageValue?=?TotalValue?/?Worksheet(1).Range (〃A1:A1000〃).Rows.Count 而下面代碼程式比上面例子快得多: AverageValue=Application.WorksheetFunction.Average(Worksheets(1) .Range(〃A1:A1000〃)) 其它函數如Count, Counta, Countif, Match, Lookup等等,都能代替相同功能的VBA程式碼,提高程式的運行速度。 * 方法(2)儘量減少實用對象的引用,尤其在循環中 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.使用對象變數。 如果你發現一個物件引用被多次使用,則你可以將此物件用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 方法(3)減少對象的啟動和選擇 如果你的通過錄製巨集來學習VBA的,則你的VBA程式裡一定充滿了物件的啟動和選擇,例如Workbooks(XXX).Activate,Sheets?(XXX).Select, Range(XXX).Select等,但事實上大多數情況下這些操作不是必需的。 則以下代碼比上面的要快: Set?TheValue?=?Cells(1,1).Value Sheets(〃Sheet1〃).Select For?k?=?1?To?1000 Cells(k,1).Value?=?TheValue Next?k 例如: 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)關閉螢幕更新 Application.ScreenUpdating = False Application.ScreenUpdating = true 如果你的VBA程式前面三條做得比較差,則關閉螢幕更新是提高VBA程式運行速度的最有效的方法,縮短執行時間2/3左右。 方法(5)添加公式時,關閉自動計算 Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic * 二,在ADO自連自的時候,excel系統經常會出現一些毛病,其中最大的就是對內存的佔用,數據量大的時候,經常會出現記憶體已滿,系統資源不足等提示。在搜索了很多網上論壇後,這裡我們給出
文档评论(0)