Tổng hợp phương pháp chạy code VBA trong Excel nhanh và đẹp (Phần 1)

Ngọc Diệp
Ngọc Diệp
Dec 14 2022

Code VBA Excel là công cụ hữu ích giúp người dùng tự động hóa công việc để tiết kiệm thời gian. Một khi bạn đã biết cách sử dụng các code đầu tiên, công việc tưởng chừng như được rút gọn gấp nhiều lần. Tuy nhiên, dần dần công việc lại chồng chất, đòi hỏi bạn phải viết những code VBA phức tạp hơn. Cuối cùng đến một ngày, bạn phát hiện code của mình không hoạt động hiệu quả như trước, thậm chí chậm chạp đến mức khó chịu và bí bách. Vậy thì hãy để Gitiho đề xuất một vài phương pháp viết code VBA Excel nhanh và đẹp cho các bạn nhé.

VỪA BẬN VỪA LƯỜI VẪN GIỎI EXCEL NHỜ KHÓA HỌC NÀY

EXG01: Tuyệt đỉnh Excel - Trở thành bậc thầy Excel

G-LEARNING

32725 học viên

4.8 (110 đánh giá)

499,000đ

799,000đ

Nhập môn Excel cùng Gitiho

G-LEARNING

10827 học viên

4.65 (20 đánh giá)

Miễn phí

499,000đ

EXG05 - Kỹ năng sử dụng công thức và hàm A-Z trong Excel

G-LEARNING

683 học viên

4.8 (5 đánh giá)

499,000đ

799,000đ

Dừng chạy code VBA Excel, refresh (F5) màn hình

Trong trường hợp màn hình Excel tự động chớp nháy, khả năng cao là do tính năng refresh đã được kích hoạt. Để dừng hiện tượng này, các bạn hãy nhập dòng code sau đây:

Sub NoScreenRefresh()
Application.ScreenUpdating = False
' Viết các code VBA khác vào giữa ở đây
Application.ScreenUpdating = True
End Sub

Dừng tính toán khi chạy code VBA Excel

Sub NoCalculations()
Application.Calculation = xlCalculationManual
' Viết các code VBA khác vào giữa ở đây
Application.Calculation = xlCalculationAutomatic
End Sub

Xem thêm: Hướng dẫn cách gộp các sheet trong Excel kèm theo code VBA

Tạm thời bỏ qua Worksheet và Workbook khi chạy code VBA Excel

Sub StopAllEvents()
Application.EnableEvents = False
' Viết các code VBA khác vào giữa ở đây
Application.EnableEvents = True
End Sub

Sử dụng With cùng Object khi chạy code VBA trong Excel

Sub WithARange()
With Range("A1")
.Value = 100
.Font.Bold = True
.Interior.ColorIndex = 6
.Copy Destination:=Range("B1")
End With
End Sub

Sử dụng vbNullString để xóa Text trong code VBA Excel

Sub EmptyText()
Dim strWords As String
strWords = "Cats"
MsgBox strWords
strWords = vbNullString
MsgBox strWords
End Sub

Điền công thức trực tiếp để sử dụng code VBA Excel

Thay vì sử dụng tính năng Copy hay Fill down, chúng ta nên điền trực tiếp công thức vào phạm vi chạy code VBA Excel bằng hàm sau:

Sub NoAutoFillOrCopy()
Range("A1:A200").FormulaR1C1 = "=SUM(RC[1]:RC[5])"
End Sub

Hạn chế tối đa Copy và Paste khi chạy code VBA Excel

Trong quá trình làm việc mà phát hiện code chạy chậm, thay vì sử dụng code:

Sheet1.Range("A1:A200").Copy
Sheet2.Range("B1").pasteSpecial
Application.CutCopyMode=False 'xoá Clipboard

Chúng ta nên chạy code:

Sheet1.Range("A1:A200").Copy Destination:=Sheet2.Range("B1")

hoặc:

Sheet2.Range("B1:B200").Formula = Sheet1.Range("A1:A200").Formula
Đừng sử dụng code này:
Sheet1.Range("A1:A200").Copy
Sheet1.Range("A1:A200").PasteSpecial xlPasteValues
Application.CutCopyMode=False'Clear Clipboard

Mà hãy chạy code dưới đây:

Sheet1.Range("A1:A200") = Sheet1.Range("A1:A200").Value

Xem thêm: Hướng dẫn cách lấy giá trị bên trong một ô bằng cách viết code với Range hoặc Cells

Dừng cập nhật trên StatusBar khi chạy code VBA Excel

Application.DisplayStatusBar = False
' Code VBA
Application.DisplayStatusBar = TRUE

Ẩn page breaks khi chạy code VBA Excel

Activesheet.DisplayPageBreaks = False
' Code VBA
Activesheet.DisplayPageBreaks = True

Tạm thời dừng cập nhật bảng Pivot khi chạy code VBA Excel

ActiveSheet.PivotTables(“PivotTable1”).ManualUpdate=True
' Code VBA
ActiveSheet.PivotTables(“PivotTable1”).ManualUpdate=False

Không sử dụng method.Select với code VBA Excel

Đừng sử dụng hàm:

Sheets(“Sheet1”).Select
Range(“A1”).Select
ActiveCell.FormulaR1C1 = “1000”
Sheets(“Sheet2”).Select
Range(“A1”).Select
ActiveCell.FormulaR1C1 = “1000”
Sheets(“Sheet3”).Select
Range(“A1”).Select
ActiveCell.FormulaR1C1 = “1000”

Mà thay vào đó, chúng ta hãy rút ngắn .select để tăng tốc độ chạy code VBA Excel bằng cách nhập:

Sheets(“Sheet1”).Range(“A1”).FormulaR1C1 = “1000”
Sheets(“Sheet2”).Range(“A1”).FormulaR1C1 = “1000”
Sheets(“Sheet3”).Range(“A1”).FormulaR1C1 = “1000”

Xem thêm: Tổng hợp các code VBA Excel thao tác với Workbook chỉ trong nháy mắt

Kết luận

Qua bài viết này, Gitiho đã đề xuất một số giải pháp hữu ích để tăng độ nhanh và đẹp của code VBA Excel. Với những kiến thức trên, hi vọng các bạn có thể giải quyết vấn đề về code VBA Excel mình đang gặp phải và chạy code hiệu quả để đạt được năng suất công việc cao nhất.

Chúc các bạn thành công!

 

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

Bài viết liên quan

Cách ứng dụng hàm INT và MOD cho lễ tân và các công việc khác

Cách ứng dụng hàm INT và MOD cho lễ tân và các công việc khác

Hướng dẫn cách tách địa chỉ ra khỏi chuỗi

Hướng dẫn cách tách địa chỉ ra khỏi chuỗi

CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL (KÈM BÀI TẬP)

CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL (KÈM BÀI TẬP)

Hướng dẫn kiểm tra giá trị trùng lặp cực đơn giản trên Excel 2010, 2013, 2016, 2019

Hướng dẫn kiểm tra giá trị trùng lặp cực đơn giản trên Excel 2010, 2013, 2016, 2019

Cách cộng, trừ ngày tháng năm trong Excel để tính số ngày siêu nhanh cho kế toán

Cách cộng, trừ ngày tháng năm trong Excel để tính số ngày siêu nhanh cho kế toán

Hướng dẫn 4 cách bôi đen trong Excel đơn giản và nhanh chóng

Hướng dẫn 4 cách bôi đen trong Excel đơn giản và nhanh chóng

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội