Giúp tăng tốc độ đoạn code (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

hadoan-pap

Thành viên tiêu biểu
Tham gia
8/7/15
Bài viết
461
Được thích
20
Chào các bạn và anh chị.

Em có đoạn code như bên dưới, nhưng có vẻ nó chạy hơi chậm do k dung mảng... Moi ng có thể giúp em làm thế nào để tang tốc độ chạy code đó đc k ạ?

Ví dụ dùng mảng cũng đc.

Em xin cảm ơn!

With Application
.Interactive = False
.EnableEvents = False
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With

Dim i As Integer
Dim j As Integer

If Sheet2.Cells(18, 3) <> 0 Then
If Sheet2.Cells(18, 3) < Sheet2.Cells(6, 9) Then
MsgBox "The Plan data could not smaller than AP date.", vbInformation, "Warning......!"
Sheet2.Cells(18, 3).Interior.ColorIndex = 45
Else
Sheet2.Cells(18, 3).Interior.ColorIndex = 2
End If
End If


If Sheet2.Cells(10, 2) = "General Expenditure" And Sheet2.Cells(10, 4) = "Purchase" Then
If Sheet2.Cells(10, 6) = "Tangible Goods" Or Sheet2.Cells(10, 6) = "Intangible Goods" Then
If Sheet2.Cells(25, 8) <> 0 And Sheet2.Cells(25, 8) > 30000000 Then
MsgBox "Check Whether FA Or Not.", vbInformation, "Warning......!"
Sheet2.Cells(25, 8).Interior.ColorIndex = 45
Else
Sheet2.Cells(25, 8).Interior.ColorIndex = 2
End If
End If
End If

If Sheet2.Cells(32, 4) <> " " And Sheet2.Cells(32, 4) > 2300000 Then
MsgBox "Over Limited Amount.", vbInformation, "Warning...Entertainment Fee Only.!"
Sheet2.Cells(32, 4).Interior.ColorIndex = 45
Else
Sheet2.Cells(32, 4).Interior.ColorIndex = 2
End If

' check chu ky


If Sheet2.Cells(10, 2) = "General Expenditure" Or Sheet2.Cells(10, 2) = "Tools & equipments" Or Sheet2.Cells(10, 2) = "Others" Then

If IsEmpty(Sheets("Approval sheet Form").Range("H25")) = False Then ' Kiem tra dieu kien H25 co du lieu

If Sheet2.Cells(25, 8).Value < 10000000 Then
Sheet2.Cells(44, 7).Interior.ColorIndex = 48
Sheet2.Cells(44, 7) = "Not Applicable"
Sheet2.Cells(44, 8).Interior.ColorIndex = 48
Sheet2.Cells(44, 8) = "Not Applicable"
Sheet2.Cells(44, 9).Interior.ColorIndex = 48
Sheet2.Cells(44, 9) = "Not Applicable"

ElseIf Sheet2.Cells(25, 8).Value > 10000000 And Sheet2.Cells(25, 8).Value < 250000000 Then
Sheet2.Cells(44, 7).Interior.ColorIndex = 48
Sheet2.Cells(44, 7) = "Not Applicable"
Sheet2.Cells(44, 8).Interior.ColorIndex = 2
Sheet2.Cells(44, 8) = " "
Sheet2.Cells(44, 9).Interior.ColorIndex = 2
Sheet2.Cells(44, 9) = " "
Else

Sheet2.Cells(44, 7).Interior.ColorIndex = 2
Sheet2.Cells(44, 7) = " "
Sheet2.Cells(44, 8).Interior.ColorIndex = 2
Sheet2.Cells(44, 8) = " "
Sheet2.Cells(44, 9).Interior.ColorIndex = 2
Sheet2.Cells(44, 9) = " "

End If
End If
Else

Sheet2.Cells(44, 7).Interior.ColorIndex = 2
Sheet2.Cells(44, 7) = " "
Sheet2.Cells(44, 8).Interior.ColorIndex = 2
Sheet2.Cells(44, 8) = " "
Sheet2.Cells(44, 9).Interior.ColorIndex = 2
Sheet2.Cells(44, 9) = " "
End If

For i = 97 To 125

If Sheet2.Cells(16, 2) = Sheet5.Cells(i, 2) Then

Sheet2.Cells(16, 3) = Sheet5.Cells(i, 3)

End If

If Sheet2.Cells(16, 7) = Sheet5.Cells(i, 2) Then

Sheet2.Cells(16, 8) = Sheet5.Cells(i, 3)

End If

If Sheet2.Cells(17, 2) = Sheet5.Cells(i, 2) Then
If Sheet2.Cells(17, 2) <> "Multi-Ply" Then
Sheet2.Cells(17, 3) = Sheet5.Cells(i, 3)
Else
Sheet2.Cells(17, 3) = " "
End If
End If

Next i

With Application
.Interactive = True
.EnableEvents = True
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
 
Gửi file lên bạn ơi. Đọc vô code mà thiếu file khó hình dung quá.
 
Upvote 0
1. Hãy giữ gìn sự trong sáng của tiếng việt (bạn cần viết tiếng việt đầy đủ có dấu- đặt trường hợp có người nước ngoài vào xem thì còn hiểu bạn viết gì, còn bạn viết tắt thì thua người ta không hiểu gì đâu- và ngược lại bạn tham khảo trang nước ngoài thì sao)
Em có đoạn code như bên dưới, nhưng có vẻ nó chạy hơi chậm do k dung mảng... Moi ng có thể giúp em làm thế nào để tang tốc độ chạy code đó đc k ạ?
2. Hãy giữ gìn giao diện thân thiện của diễn đàn
cho mớ code trên vào đây nhé bạn
diễn đàn đã cung cấp cho bạn những công cụ này cớ sao lại không dùng.
upload_2017-8-9_9-52-21.png
3. bạn đã biết chậm do không dùng mảng cớ sao lại không viết được trong khi bạn đã viết được đống code trên
do k dung mảng...
dùng mảng cũng đc.
4. để người giúp có thể đọc dễ dàng code của bạn nên Index ở đầu các dòng code cho đẹp,thuận lợi cho người đọc và cho mình khi sửa chữa sau này để tránh sai sót (ví dụ bạn for i gì gì đó mà quên next i , nếu bạn có index đầu dòng thì dễ phát hiện ra, còn không thì hên xui. cái này nhằm tránh sai sót khi bạn viết code và sửa chữa sau này thôi- bạn có thể thực hiện theo hoặc không tùy bạn)
nhờ giúp gì (muốn nhanh) thì vui lòng gửi file lên để người giúp có thể biết bạn cần giúp gì, kết quả code chạy ra sao. chứ không ai có thời gian mà ngồi đọc- dịch code mà không có chú thích kèm theo đâu bạn.
tiêu đề cũng không cụ thể mà mông lung quá.
Đôi lời cùng bạn! chúc bạn nhận được kết quả sớm. tôi không biết nhiều về VBA với code nên đọc không hiểu. chắc không giúp được bạn rồi!
tôi thấy hình như bên này bạn cũng đang hỏi vấn đề này. tốt nhất bạn nên hỏi tiếp bên bài viết đó, không nên lập nhiều bài hỏi 1 vấn đề quá.
 
Lần chỉnh sửa cuối:
Upvote 0
ôi, giờ mình mới biết k hiểu tại sao đoạn code trên để trong cái ComboBox Active X trên Sheet lại chạy cảm giác chậm hơn khi click. Còn với Button Control thì khi click mình thấy đoạn code đó chạy nhanh hơn hẳn khi click. K hiểu là vì lý do gì.

Mình có 1 userform , có 1 ComboBox ( đã add List ) mà đang muốn khi xổ ComboBox và gõ từ bất kỳ vào ComboBox đó thì nó sẽ Autocomplete search trong ComBoBox và show lên các chuỗi có từ mình gõ dù từ đó ở bất kỳ chỗ nào trong chuỗi. Mình xin gửi ví dụ như file đính kèm. Mọi người cho mình xin Code với nhé.

Mình cảm ơn!
 

File đính kèm

Upvote 0
ôi, giờ mình mới biết k hiểu tại sao đoạn code trên để trong cái ComboBox Active X trên Sheet lại chạy cảm giác chậm hơn khi click. Còn với Button Control thì khi click mình thấy đoạn code đó chạy nhanh hơn hẳn khi click. K hiểu là vì lý do gì.

Mình có 1 userform , có 1 ComboBox ( đã add List ) mà đang muốn khi xổ ComboBox và gõ từ bất kỳ vào ComboBox đó thì nó sẽ Autocomplete search trong ComBoBox và show lên các chuỗi có từ mình gõ dù từ đó ở bất kỳ chỗ nào trong chuỗi. Mình xin gửi ví dụ như file đính kèm. Mọi người cho mình xin Code với nhé.

Mình cảm ơn!
bài này và nội dung code ở #1 có liên quan gì đến nhau không bạn
 
Upvote 0
bài này và nội dung code ở #1 có liên quan gì đến nhau không bạn[/QUOTE

cảm ơn bạn vì nội dung ở bài này có lẽ mình đã chuyển sang dung Button Control và ổn hơn rồi. Mình đang có vấn đề với Autocomplete trong ComboBox UserForm và có post ở link bên dưới nhưng chưa thấy ai rảnh vào hỗ trợ nên mình tiện nhờ anh em bên này. Link bên dưới bạn ạ.

Cảm ơn bạn và mong bạn hỗ trợ mình code đoạn đó nhé.
http://www.giaiphapexcel.com/diendan/threads/autocomplete-trong-combobox-userform.128614/
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom