Lỗi VBA hết bộ nhớ

Hướng dẫn này sẽ giải thích lỗi VBA Out of Memory.

Lỗi VBA Out of Memory xảy ra khi Excel đã sử dụng tất cả tài nguyên của máy tính của bạn trong khi chạy macro và hết bộ nhớ theo đúng nghĩa đen để tiếp tục tính toán hoặc chạy mã. Điều này có thể xảy ra khi bạn có nhiều ứng dụng đang chạy và cố gắng chạy một macro lớn trong Excel hoặc có thể khi bạn tạo một vòng lặp vĩnh viễn trong Excel do lỗi.

(Xem Hướng dẫn xử lý lỗi của chúng tôi để biết thêm thông tin về Lỗi VBA)

Nguyên nhân của lỗi hết bộ nhớ

Lỗi hết bộ nhớ có thể xảy ra nếu một người đang làm việc với một sổ làm việc có chứa nhiều trang tính và hàng nghìn hàng. Nếu chúng tôi tạo một vòng lặp hoạt động với một khối lượng lớn dữ liệu, lỗi hết bộ nhớ có thể xảy ra. Nó cũng có thể xảy ra nếu chúng ta đang làm việc với nhiều đối tượng và đặt mỗi đối tượng bằng một câu lệnh SET, nhưng sau đó không xóa các tham chiếu đến các đối tượng giữa các thủ tục hoặc vòng lặp.

Ví dụ: vòng lặp sau chắc chắn có thể gây ra lỗi bộ nhớ nếu bạn mở nhiều tệp với nhiều trang tính.

1234567891011121314 Sub TestMemory ()Dim wb As WorkbookDim ws As WorksheetDim i As SingleĐối với mỗi wb trong ứng dụng.Đối với mỗi ws Trong wb. Trang tínhDo Until ActiveCell = "A1048576"ActiveCell = 1 + ii = i + 1ActiveCell.Offset (1, 0) .SelectVòngTuần tiếp theoTuần tiếp theoKết thúc Sub

Ngăn chặn lỗi hết bộ nhớ

Giải phóng đối tượng

Nếu chúng ta đang làm việc với Vòng lặp và Đối tượng, chúng ta cần đảm bảo rằng chúng ta đặt Đối tượng thành KHÔNG CÓ khi nó đã được sử dụng và nó không còn cần thiết nữa - điều này sẽ giải phóng bộ nhớ.

Lập trình VBA | Code Generator làm việc cho bạn!

Đảm bảo Chỉ một Phiên bản Excel đang chạy

Nếu chúng tôi đang làm việc với các tệp lớn và lượng lớn dữ liệu, hãy kiểm tra để đảm bảo rằng bạn không mở nhiều phiên Excel - nó chỉ cần mở một lần. Một cách để kiểm tra điều này là truy cập Trình quản lý tác vụ và xem có bao nhiêu phiên bản Excel đang chạy.

nhấn Ctl + Alt + Delete trên Bàn phím,

Bấm vào Quản lý công việc và đảm bảo rằng chỉ có một phiên bản Excel đang chạy. Trong hình bên dưới, có một ví dụ, với 2 cửa sổ.

Chúng tôi cũng có thể kiểm tra trong Trình quản lý tác vụ rằng không có phiên bản Excel nào đang chạy ở chế độ nền (tức là không hiển thị).

Cuộn xuống trong Trình quản lý tác vụ cho đến khi bạn thấy Quy trình nền và đảm bảo rằng Excel không có trong danh sách chương trình đó.

Kiểm tra kích thước tệp Excel của bạn

Thường thì có những hàng và cột đã được truy cập bên dưới những hàng và cột được sử dụng thực sự trong trang tính của bạn. Excel sử dụng bộ nhớ trong các ô này - ngay cả khi các ô đó trống. Kiểm tra kích thước của tệp bằng cách nhấn CTRL + SHIFT + KẾT THÚC trên bàn phím để xem vị trí con trỏ di động của bạn đến. Nếu nó nằm dưới ô cuối cùng mà bạn đang sử dụng, hãy đảm bảo rằng bạn xóa tất cả các hàng và cột trống phía trên con trỏ ô rồi lưu lại tệp - điều này sẽ làm giảm kích thước tệp Excel của bạn.

Các cách khác để kiểm tra bộ nhớ

Có nhiều cách khác để giải phóng bộ nhớ trong Excel. Một ý tưởng hay là đóng Excel nếu bạn không sử dụng, rồi mở nó sau - điều này sẽ giải phóng bất kỳ bộ nhớ nào mà Excel đang lưu trữ vì nó có xu hướng lưu trữ bộ nhớ ngay cả khi không mở sổ làm việc! Luôn đảm bảo phiên bản Office của bạn được cập nhật bằng cách kiểm tra Bản cập nhật trên PC của bạn và kiểm tra bất kỳ phần bổ trợ VBA nào có thể đang được sử dụng nhưng bạn không sử dụng - bạn có thể gỡ cài đặt các phần bổ trợ này để giải phóng thêm bộ nhớ.

wave wave wave wave wave