Tại sao macro Excel của tôi không hoạt động?

Khắc phục sự cố macro Excel đơn giản, nếu thông báo lỗi xuất hiện. Sử dụng nút Gỡ lỗi để tìm và khắc phục sự cố nhỏ trong mã. Cách khắc phục lỗi phím F8 ngừng hoạt động khi chuyển qua macro. Phải làm gì nếu danh sách Project Explorer bị thiếu

Nút gỡ lỗi thông báo lỗi

Đôi khi, khi bạn cố gắng chạy macro, một thông báo lỗi sẽ xuất hiện, chẳng hạn như "Lỗi thời gian chạy '9'. Subscript Out of Range" lỗi hiển thị bên dưới

Trên thông báo lỗi này, có sẵn 3 nút -- Kết thúc, Gỡ lỗi và Trợ giúp

  • Để dừng macro, hãy bấm vào nút Kết thúc
  • Để nhận thông tin về lỗi, hãy nhấp vào Trợ giúp. Trong trường hợp này, bạn sẽ kết thúc trang trên trang web của Microsoft, với danh sách các nguyên nhân và giải pháp có thể xảy ra cho lỗi Subscript Out of Range
  • Để đi đến VBE và cố gắng giải quyết vấn đề, hãy nhấp vào nút Gỡ lỗi

    Tại sao macro Excel của tôi không hoạt động?

Gỡ lỗi Macro

Trong ví dụ này, một macro đã được ghi lại, để chuyển đến trang tính có tên "Chính", sau đó chọn ô C3 trên trang tính đó. Khi chạy macro, thông báo lỗi trên xuất hiện

Đây là mã VBA, cho macro GoToMainSheet

Sub GoToMainSheet()
' GoToMainSheet Macro
    Sheets("Main").Select
    Range("C3").Select
End Sub

Chúng tôi sẽ sử dụng nút Gỡ lỗi để khắc phục sự cố

  • Trong thông báo lỗi, nhấp vào nút Gỡ lỗi
  • VBE mở ra, hiển thị macro Trang tính GoToMain và một dòng mã được đánh dấu bằng màu vàng, với mũi tên màu vàng ở lề bên trái
  • Tại sao macro Excel của tôi không hoạt động?
  • Excel hiển thị thông báo lỗi vì nó không thể hoàn thành dòng mã được đánh dấu
  • Nhìn vào cửa sổ Project Explorer và kiểm tra danh sách các trang tính cho sổ làm việc đang hoạt động
  • Có 3 trang tính, được đặt tên là "Giới thiệu", "Trang tính 2" và "Trang tính 3" -- không có trang tính nào có tên là "Chính"
  • Tại sao macro Excel của tôi không hoạt động?

Chúng tôi sẽ dừng trình gỡ lỗi và sửa mã

  • Trên Thanh công cụ VBE, nhấp vào nút Đặt lại
  • Tại sao macro Excel của tôi không hoạt động?

Mã ngừng chạy và phần đánh dấu màu vàng biến mất

sửa mã

Tiếp theo, bạn sẽ chỉnh sửa mã, để thay đổi tên trang tính

Giải pháp 1. Không được khuyến khích

  • Trong dòng mã, bạn có thể thay thế "Main" bằng "Intro", là tên hiện tại của trang tính đầu tiên trong sổ làm việc
  • Tuy nhiên, với giải pháp đó, mã có thể hiển thị lại lỗi, nếu có ai đó thay đổi tên trang tính trong tương lai
Sheets("Intro").Select
  • Đây không phải là giải pháp tốt nhất

Giải pháp 2. Khuyến khích

  • Thay vì sử dụng tên từ tab Trang tính, chúng tôi sẽ sử dụng Tên mã của trang tính. Nó ít có khả năng bị thay đổi bởi bất kỳ ai khác ngoài lập trình viên
  • Trong Project Explorer, bạn có thể thấy Tên mã của trang tính, theo sau là tên xuất hiện trên tab trang tính
  • Tại sao macro Excel của tôi không hoạt động?

  • Tên mã của trang tính đầu tiên là "Sheet1", vì vậy hãy thay đổi mã để sử dụng tên đó
Sheet1.Select
  • Giải pháp này tốt hơn vì mã sẽ tiếp tục chạy, ngay cả khi tên trên tab trang tính bị thay đổi

Lưu các thay đổi và kiểm tra Macro

  • Trên Thanh công cụ VBE, nhấp vào nút Lưu, sau đó đóng cửa sổ VBE và quay lại Excel
  • Chạy lại macro và nó sẽ hoạt động bình thường mà không hiển thị lỗi

Phím F8 ngừng hoạt động

Khi gỡ lỗi mã VBA của Excel, bạn có thể sử dụng phím F8 hoặc lệnh Step Into để duyệt qua mã, từng dòng một

Tại sao macro Excel của tôi không hoạt động?

Tuy nhiên, trong Excel 2010 hoặc các phiên bản mới hơn, bạn có thể gặp phải sự cố khi phím F8 (hoặc Bước vào) ngừng hoạt động khi thực hiện một phần quy trình

Đôi khi, điều này xảy ra sau khi mã mở một tệp khác. Thay vì dừng ở dòng mã tiếp theo, nó sẽ chạy đến cuối quy trình hoặc đến điểm ngắt tiếp theo

Thay đổi sổ đăng ký

Để khắc phục sự cố này, bạn có thể thực hiện thay đổi sau trong Sổ đăng ký. Như mọi khi, hãy sao lưu Sổ đăng ký, trước khi thực hiện bất kỳ thay đổi nào và tự chịu rủi ro khi thử điều này

Cảm ơn Ross Connell đã chia sẻ giải pháp này mà anh ấy đã học được từ Bộ phận hỗ trợ của Microsoft

Thay đổi sổ đăng ký ảnh hưởng đến Gỡ lỗi RPC và bạn có thể đọc thêm về nó trên trang web của Microsoft

1) Tạo bản sao lưu

Trước khi bạn thực hiện bất kỳ thay đổi nào đối với sổ đăng ký, hãy nhớ thực hiện sao lưu trước

  • Đóng Excel
  • Tạo một bản sao lưu của tệp Registry, sau đó mở Registry

2) Tìm khóa đăng ký

Tiếp theo, hãy mở Sổ đăng ký và chuyển đến khóa VBA hiện hành, dựa trên phiên bản Office và Window của bạn

  • Đối với Office 32 bit trên Cửa sổ 64 bit, hãy chuyển đến khoá đăng ký
    • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VBA
  • Đối với Office 32 bit trên Cửa sổ 32 bit, hãy chuyển đến khoá đăng ký
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA
  • Đối với Office 64 bit trên Windows 64 bit, hãy chuyển đến khoá đăng ký
    • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VBA

Phải làm gì tiếp theo

  • Nếu bạn tìm thấy khóa VBA thích hợp, nơi bạn sẽ tạo DWORD
  • Nếu bạn KHÔNG tìm thấy khóa, hãy thử các giải pháp trong phần tiếp theo, để tìm kiếm sổ đăng ký hoặc tạo khóa theo cách thủ công

Không có khóa VBA trong Registry

Nếu bạn không thể tìm thấy khóa VBA ở vị trí dự kiến, hãy thử một trong các giải pháp sau

1. Tìm kiếm Sổ đăng ký

Hãy thử giải pháp này trước - nó dễ dàng hơn. (Cảm ơn vì mẹo này)

  • Trong Registry, nhấp chuột phải vào thư mục HKEY_LOCAL_MACHINE
  • Trong menu bật lên, nhấp vào Tìm
  • Trong hộp Tìm kiếm, hãy nhập. Microsoft\VBA
  • Nhấp vào nút Tìm tiếp theo

Nếu cách đó không hiệu quả, hãy thử giải pháp tiếp theo bên dưới

Tại sao macro Excel của tôi không hoạt động?

2. Tạo khóa thủ công

Nếu bạn không thể tìm thấy khóa Microsoft\VBA ở bất kỳ đâu trong Sổ đăng ký, hãy làm theo các bước bên dưới để tạo khóa theo cách thủ công. (Cảm ơn Ross Connell đã chia sẻ mẹo bổ sung này)

  • Trước tiên, hãy tìm thư mục chứa khóa VBA, dựa trên phiên bản Office và Windows của bạn. (Thấy )
  • Trong danh sách bên trái, hãy chọn thư mục đó để xem nội dung của nó
  • Tiếp theo, nhấp chuột phải vào khung bên phải của cửa sổ, nơi liệt kê nội dung
  • Sau đó, trong menu bật lên, bấm vào Mới, sau đó bấm vào Khóa

Tại sao macro Excel của tôi không hoạt động?

  • Tiếp theo, đổi tên khóa mới thành VBA
  • Sau đó, trong danh sách bên trái, chọn khóa VBA mới, để xem nội dung của nó

3) Tạo DWORD trong VBA Key

Cuối cùng làm theo các bước sau, để tạo DWORD (hoặc QWORD) trong key VBA

  • Đầu tiên, nhấp chuột phải vào khung bên phải của cửa sổ, nơi liệt kê nội dung
  • Sau đó, trong menu bật lên, bấm vào Mới
  • Trong menu bật lên, hãy bấm vào DWORD hoặc QWORD, tùy thuộc vào phiên bản Office của bạn

Tại sao macro Excel của tôi không hoạt động?

  • Tiếp theo, đặt tên cho DWORD (hoặc QWORD) là DisableOrpcDebugging7
  • Bấm chuột phải vào DWORD (hoặc QWORD) và bấm Sửa đổi
  • Thay đổi Dữ liệu giá trị thành 1 và để nguyên các cài đặt khác
  • Sau đó, nhấn nút OK để hoàn tất việc thay đổi

Tại sao macro Excel của tôi không hoạt động?

Xem mục mới trong sổ đăng ký

DWORD hoặc QWORD đã hoàn thành sẽ xuất hiện trong Sổ đăng ký

Ví dụ: ảnh chụp màn hình này hiển thị DWORD

Tại sao macro Excel của tôi không hoạt động?

Ảnh chụp màn hình này hiển thị QWORD, trong thư mục VBA được tạo thủ công

Tại sao macro Excel của tôi không hoạt động?

4) Đóng sổ đăng ký

Sau khi hoàn thành các bước tạo DWORD hoặc QWORD mới trong key Microsoft\VBA, các bạn làm theo các bước sau

  • Đóng sổ đăng ký
  • Mở lại Excel
  • Kiểm tra phím F8 để xem bây giờ nó có hoạt động chính xác không, bước qua mã và dừng ở mỗi dòng

Thiếu thư mục Project Explorer

Khi bạn làm việc trong Visual Basic Editor, Project Explorer thường hiển thị, hiển thị danh sách tất cả các dự án VBA đang mở

Nhấp vào nút + hoặc - ở bên trái tên dự án để mở và đóng danh sách các đối tượng cho dự án đó

Tại sao macro Excel của tôi không hoạt động?

GHI CHÚ. Nếu một dự án được bảo vệ và chưa được mở khóa trong phiên hiện tại, bạn sẽ được nhắc nhập mật khẩu khi nhấp vào nút +

Tại sao macro Excel của tôi không hoạt động?

Hiển thị nội dung thư mục

Sau đó, nhấp vào nút + hoặc - ở bên trái tên thư mục để mở và đóng danh sách các đối tượng cho thư mục đó

Tại sao macro Excel của tôi không hoạt động?

Các thư mục bị thiếu

Đôi khi, các thư mục trình khám phá dự án có thể biến mất và một danh sách theo thứ tự bảng chữ cái các đối tượng của sổ làm việc xuất hiện bên dưới tên dự án

Tại sao macro Excel của tôi không hoạt động?

Để hiển thị lại các đối tượng được nhóm vào các thư mục, hãy làm theo các bước sau

  1. Nhấp vào tên dự án, cho một dự án đã được mở khóa
  2. Trên thanh công cụ ở đầu cửa sổ Project Explorer, nhấp vào nút Toggle Folders

Các thư mục sẽ xuất hiện lại cho tất cả các dự án, với các nhóm đối tượng vào các thư mục

Tại sao macro Excel của tôi không hoạt động?

Nhận tệp mẫu

Nút gỡ lỗi. Để kiểm tra các bước gỡ lỗi VBA, hãy lấy tệp mẫu Nút gỡ lỗi thông báo lỗi. Tệp Excel đã nén có định dạng xlsm và chứa macro có tên GoToMainSheet. Để kiểm tra macro, hãy nhớ bật macro khi bạn mở sổ làm việc

Tại sao macro của tôi không hoạt động trong Excel?

Bấm vào tab Tệp, rồi bấm vào Tùy chọn ở dưới cùng của thanh bên trái. Trên ngăn bên trái, chọn Trung tâm tin cậy, sau đó nhấp vào Cài đặt trung tâm tin cậy…. Trong hộp thoại Trung tâm tin cậy, nhấp vào Cài đặt macro ở bên trái, chọn Bật tất cả macro và nhấp vào OK

Tại sao macro của tôi không tự động chạy?

Macro có thể không tự động chạy nếu. Do các tính năng bảo mật trong Excel, nhiều sổ làm việc sẽ tắt macro theo mặc định . Để cái này chạy được thì phải bật macro. Bạn có thể thấy cảnh báo khi mở sổ làm việc có macro trong đó và sau đó bạn sẽ phải bật macro từ cảnh báo đó.