Nội dung chính
- 1 Dừng chạy code VBA Excel, refresh [F5] màn hình
- 2 Dừng tính toán khi chạy code VBA Excel
- 3 Tạm thời bỏ qua Worksheet và Workbook khi chạy code VBA Excel
- 4 Sử dụng With cùng Object khi chạy code VBA trong Excel
- 5 Sử dụng vbNullString để xóa Text trong code VBA Excel
- 6 Điền công thức trực tiếp để sử dụng code VBA Excel
- 7 Hạn chế tối đa Copy và Paste khi chạy code VBA Excel
- 8 Dừng cập nhật trên StatusBar khi chạy code VBA Excel
- 9 Ẩn page breaks khi chạy code VBA Excel
- 10 Tạm thời dừng cập nhật bảng Pivot khi chạy code VBA Excel
- 11 Không sử dụng method.Select với code VBA Excel
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é.
Xem thêm: Tìm hiểu về VBA và các ứng dụng VBA trong công việc
Tuyệt đỉnh VBA - Viết code trong tầm tay
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
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
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”
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!
Xem thêm các bài viết sau:
Hướng dẫn tìm kiếm và lọc dữ liệu tự động bằng Textbox trong Excel VBA
Hướng dẫn hiện thẻ Developer để ghi Macro hoặc viết code VBA trong Excel
Unicode tiếng việt khi viết trong VBA
Hướng dẫn cách viết hàm VBA trong Excel
Cách sử dụng hàm MsgBox[] để tạo hộp thông báo với VBA