Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
0Activity
0 of .
Results for:
No results containing your search query
P. 1
Tăng Tốc Cho Code VBA Của Bạn

Tăng Tốc Cho Code VBA Của Bạn

Ratings: (0)|Views: 11 |Likes:
Published by tranhungdao12a3
Tăng Tốc Cho Code VBA Của Bạn
Tăng Tốc Cho Code VBA Của Bạn

More info:

Categories:Types, School Work
Published by: tranhungdao12a3 on Jul 22, 2014
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as DOCX, PDF, TXT or read online from Scribd
See more
See less

07/22/2014

pdf

text

original

 
1.
 
Tăng tốc cho code VBA của bạn
1. Tắt các chế độ cập nhật màn hình và các chế độ khác để tăng tốc thực hiện code
 Code:
Option Explicit Public glb_origCalculationMode As Integer Sub
SpeedOn
(Optional StatusBarMsg As String = "Running macro...") ' Chú ý:
ở đây các bạn có thể thay đổi thông báo
'
bằng cách truyền vào chuổi UNICODE vào biến StatusBarMsg
 glb_origCalculationMode = Application.Calculation With Application .Calculation = xlCalculationManual .ScreenUpdating = False .EnableEvents = False .DisplayAlerts = False .Cursor = xlWait .StatusBar = StatusBarMsg .EnableCancelKey = xlErrorHandler End With End Sub Sub
SpeedOff
() With Application .Calculation = glb_origCalculationMode .ScreenUpdating = True .EnableEvents = True .DisplayAlerts = True .CalculateBeforeSave = True .Cursor = xlDefault .StatusBar = False .EnableCancelKey = xlInterrupt End With End Sub Sub
FillSlow
() Dim c As Range, r As Range, startTime, EndTime Set r = Range("A1:C1000") r.ClearContents startTime = Timer For Each c In r c.Select c.Formula = "=Row()*Column()" Next c DoEvents EndTime = Timer MsgBox "Total Time: " & EndTime - startTime [A1].Select End Sub Sub
FillFast
() Dim c As Range, r As Range, startTime, EndTime Set r = Range("A1:C1000") r.ClearContents startTime = Timer On Error Goto ResetSpeed SpeedOn For Each c In r c.Select
 
 c.Formula = "=Row()*Column()" Next c DoEvents EndTime = Timer MsgBox "Total Time: " & EndTime - startTime [A1].Select ResetSpeed: SpeedOff End Sub
Nguồn từ đây
. 
Cách dùng
:
 
Xin xem ví dụ
FillSlow
FillFast
ở trên.
 
Bạn sẽ gọi thủ tục để tăng tốc khi thực hiện các đoạn mã bằng cách gọi thủ tục
SpeedOn
và gọi lại thủ tục
SpeedOff
mỗi khi bạn đã hoàn tất.
 
Chú ý
:
 
Nếu các đoạn mã của bạn có sử dụng kết quả tính toán của một công thức, thì bạn nên xem xét hoặc chỉnh sửa các thủ tục ở trên cho phù hợp với công việc của mình.
 
Lê Văn Duyệt
1.
 
2. Truy cập đến một ô trong vùng
- Accessing Cells In A Range
 
Giả sử tôi có dữ liệu tại
Sheet1, vùng Code:
A1:B10
, và tôi đặt tên là "
MyRange
", tôi muốn tham chiếu đến ô
B5:
Nguyên văn bởi
Bài toán đặt ra
 
Làm thế nào để tham chiếu đến các ô trong (mang tính tương đối, sẽ giải thích ở phần sau) vùng dữ liệu
 A1:B10 (tên MyRange 
 ) là nhanh nhất? 
 
Câu trả lời
:
Thay vì tham chiếu
 
 
Code:
Range("MyRange").Cells(5,2)
ta dùng Code:
Range("MyRange")(5,2)
Ngoài ra khi tham chiếu đến ô
 A1
, các bạn có thể dùng code
 Cách 1: Code:
Range("A1")
hoặc
Cách 2: Code:
[A1]
Trong hai cách ở trên, cách 2 ngắn gọn hơn nhưng sẽ chậm hơn cách 1.
 
Nói thêm về tham chiếu kiểu này
:
 
Code:
Range("A1:B10")(5,2) ' Tham chiếu
 
đến ô B5
 
Range("A1:B10")(1,1) ' Tham chiếu đến ô A1
 
Range("B2:C10")(0, 0) ' Tham chiếu đến ô A1, các bạn chú ý !
 Range("C3:D10")(-1, -
1) ' Tham chiếu đến ô A1, các bạn chú ý !
 
Range("A1:B10")(5,2)(5,2) ' Tham chiếu đến ô C9
 Range("A1:B10")(5,3) ' Tham
chiếu đến ô C5
 
Range("A1:B10")(12,13) ' Tham chiếu đến ô M12
 
Range("A1:B10")(1) ' Tham chiếu đến ô A1
 
Range("A1:B10")(2) ' Tham chiếu đến ô B1
 
Range("A1:B10")(3) ' Tham chiếu đến ô A2
 
Range("A1:B10")(4) ' Tham chiếu đến ô B2
 

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->