Lỗi VBA OverFlow | Làm thế nào để khắc phục lỗi tràn thời gian chạy 6?

Lỗi tràn dòng VBA trong Excel

Lỗi là một phần của bất kỳ ngôn ngữ mã hóa nào nhưng tìm ra lý do tại sao lỗi đó lại xảy ra là điều khiến bạn trở nên khác biệt với đám đông trong các cuộc phỏng vấn. Lỗi không phải là xa lạ đối với mã hóa VBA, lỗi không cố ý nên việc tìm ra nguyên nhân gây ra lỗi là một nhiệm vụ khó khăn. Trong VBA, chúng tôi có một số lỗi được xác định trước và biết về chúng sẽ giúp bạn sửa lỗi rất nhanh. Trong bài viết này, chúng tôi sẽ giới thiệu cho các bạn về LỖI THỜI GIAN CHẠY 6: OverFlow. Theo dõi bài viết đầy đủ để biết về lỗi, nguyên nhân gây ra lỗi tràn VBA và cách khắc phục chúng.

Lỗi thời gian chạy 6: Lỗi tràn trong VBA là gì?

Khi chúng ta khai báo biến, chúng ta sẽ gán một kiểu dữ liệu cho chúng. Chúng ta nên hoàn toàn nhận thức được những ưu và nhược điểm của từng loại dữ liệu. Đây là nơi mà Lỗi thời gian chạy 6: OverFlow xuất hiện trong hình ảnh. Khi chúng ta quá tải kiểu dữ liệu với giá trị lớn hơn dung lượng của kiểu dữ liệu thì chúng ta sẽ gặp lỗi này.

Ví dụ: Nếu bạn khai báo biến là Byte.

Làm mờ số theo byte

Kiểu dữ liệu byte có thể giữ các giá trị từ 0 đến 255. Bây giờ tôi sẽ gán giá trị là 240.

Số = 240

Điều này sẽ hoạt động tốt vì giá trị chúng ta đã gán nhỏ hơn giới hạn của giá trị Byte là 255. Thời điểm chúng ta gán giá trị lớn hơn 255, nó dẫn đến lỗi Run Time Error 6: OverFlow.

Đây là tổng quan chung về Lỗi thời gian chạy 6: Quá chậm. Chúng ta sẽ xem một số ví dụ chi tiết.

Ví dụ về lỗi thời gian chạy 6: OverFlow trong VBA

Hãy xem một số ví dụ về lỗi VBA OverFlow trong Excel.

Ví dụ 1: Lỗi OverFlow với Kiểu dữ liệu Byte

Như tôi đã nói, điều quan trọng là phải biết ưu và nhược điểm của kiểu dữ liệu VBA mà chúng ta sẽ sử dụng. Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

 Sub OverFlowError_Example1 () Dim Number As Byte Number = 256 MsgBox Number End Sub 

Đối với biến “Number”, tôi đã gán giá trị là 256. Khi tôi chạy đoạn mã này, chúng tôi sẽ gặp lỗi bên dưới.

Điều này là do kiểu dữ liệu Byte có thể giữ các giá trị từ 0 đến 255. Vì vậy nó gây ra lỗi. Để sửa lỗi, chúng ta phải thay đổi kiểu dữ liệu hoặc chúng ta phải giảm giá trị mà chúng ta đã gán cho biến "Number".

Ví dụ 2: Lỗi VBA OverFlow với kiểu dữ liệu số nguyên

Số nguyên VBA là kiểu dữ liệu có thể chứa các giá trị từ -32768 đến 32767. Để biết ví dụ, hãy xem đoạn mã dưới đây.

Mã:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 25656 MsgBox MyValue End Sub 

Khi tôi chạy đoạn mã này, chúng tôi sẽ nhận được giá trị của biến “MyValue” trong hộp thông báo tức là 25656.

Bây giờ tôi sẽ gán lại số cho biến là “45654”.

Mã:

 Sub OverFlowError_Example2 () Dim MyValue As Integer MyValue = 45654 MsgBox MyValue End Sub 

Bây giờ nếu tôi cố gắng chạy mã, nó sẽ gây ra lỗi vì kiểu dữ liệu chúng tôi đã khai báo chỉ có thể chứa tối đa 32767 cho số dương và giới hạn cho số âm là -32768.

Ví dụ 3: Lỗi VBA OverFlow với loại dữ liệu dài

Kiểu dữ liệu dài là kiểu dữ liệu thường được sử dụng nhất trong Excel VBA. Điều này có thể giữ các giá trị từ –2,147,483,648 đến 2,147,486,647. Bất kỳ điều gì ở trên sẽ gây ra lỗi.

Mã:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = 5000 * 457 MsgBox MyValue End Sub 

Điều này sẽ gây ra lỗi tràn.

Để khắc phục sự cố này, chúng ta cần sử dụng hàm CLNG trong VBA. Dưới đây là một ví dụ tương tự.

Mã:

 Sub OverFlowError_Example3 () Dim MyValue As Long MyValue = CLng (5000) * 457 MsgBox MyValue End Sub 

Điều này sẽ hoạt động tốt.

Đây là tổng quan về Lỗi thời gian chạy 6: Quá chậm . Để giải quyết lỗi này, chúng ta cần phải hoàn toàn biết về các kiểu dữ liệu. Vì vậy, hãy quay lại những điều cơ bản, làm những điều cơ bản ngay sau đó mọi thứ sẽ rơi vào đúng vị trí.

Bạn có thể tải xuống Mẫu Excel lỗi tràn VBA này tại đây - Mẫu Excel lỗi tràn VBA


$config[zx-auto] not found$config[zx-overlay] not found