VBA - Mở & Sử dụng Trình soạn thảo Visual Basic (VBE) trong Excel

Hướng dẫn này sẽ chỉ cho bạn cách mở và lập trình trong Visual Basic Editor trong VBA.

Mở Trình soạn thảo Visual Basic

Có một số cách để truy cập Trình soạn thảo Visual Basic (VBE) trong Excel.

nhấn Alt + F11 trên bàn phím của bạn.

HOẶC

Nhấp chuột Xem> Macro> Xem Macro. Từ đây bạn có thể Chỉnh sửa một macro hiện có hoặc Tạo ra một cái mới. Một trong hai tùy chọn sẽ mở Trình soạn thảo VB.

HOẶC

Nhà phát triển> Visual Basic

Lưu ý: Nếu bạn không thấy Ruy băng dành cho nhà phát triển, bạn cần phải bật nó.

Để bật Ruy-băng dành cho nhà phát triển

Bấm vào Tập tin trong Ribbon và đi xuống Tùy chọn. bên trong Tuy Biên ruy-băng tùy chọn, đánh dấu vào Nhà phát triển hộp kiểm. Tính năng này được tắt theo mặc định, vì vậy bạn cần bật nó lên để xem tab trên ruy-băng.

Nhấp chuột VÂNG.

Tab Nhà phát triển sẽ xuất hiện trên ruy-băng chính. Bấm vào Visual Basic ở đầu dải băng để truy cập Visual Basic Editor.

Hiểu về màn hình VBE

Màn hình VBE được hiển thị trong hình bên dưới.

Trình khám phá dự án

Trình khám phá Dự án cho phép bạn xem Dự án mà bạn đang làm việc được tổ chức như thế nào. Bạn có thể xem có bao nhiêu mô-đun và biểu mẫu được lưu trữ trong dự án và có thể điều hướng giữa các mô-đun và biểu mẫu này. Mô-đun là nơi mã trong sổ làm việc của bạn được lưu trữ, khi bạn ghi macro, nó sẽ được lưu trữ trong mô-đun chuẩn - theo mặc định sẽ có tên là ‘Mô-đun 1'.

Mỗi trang tính trong tệp Excel của bạn cũng có mô-đun đằng sau nó, cũng như bản thân sổ làm việc. Khi bạn chèn một trang tính mới vào sổ làm việc qua màn hình Excel chính, bạn sẽ thấy một mô-đun trang tính bổ sung xuất hiện trong Project Explorer.

Bấm đúp vào một mô-đun để chuyển đến mã cho mô-đun đó.

Bạn cũng có thể nhấp vào menu Cửa sổ trên thanh công cụ và chọn mô-đun ở đó để chuyển đến mã cho mô-đun đó.

Loại mô-đun

Các mô-đun được tổ chức thành 5 loại khác nhau.

  1. Mô-đun tiêu chuẩn - hầu hết mã của bạn sẽ đi vào loại mô-đun này. Khi bạn ghi lại một macro, nó sẽ được đưa vào một mô-đun tiêu chuẩn. Khi bạn viết một quy trình chung để được sử dụng trong toàn bộ sổ làm việc của mình, nó cũng thường đi vào một mô-đun chuẩn.
  2. Mô-đun sổ làm việc - mô-đun này giữ mã duy nhất cho sổ làm việc riêng lẻ đó. Hầu hết mã trong loại mô-đun này được gọi là SỰ KIỆN. Ví dụ: một sự kiện có thể xảy ra khi một sổ làm việc được mở hoặc đóng. Mô-đun cũng có thể chứa mã do chính bạn viết và được sử dụng bởi các sự kiện.
  3. Mô-đun trang tính - mô-đun này giữ mã duy nhất cho trang tính riêng lẻ đó. Chúng có thể xảy ra khi một trang tính được nhấp vào chẳng hạn (ví dụ Nhấp vào Sự kiện), hoặc khi bạn thay đổi dữ liệu trong một ô. Mô-đun này cũng có thể chứa mã do chính bạn viết và được gọi bởi Sự kiện.
  4. Mô-đun biểu mẫu - đây là mô-đun đằng sau một biểu mẫu tùy chỉnh mà bạn có thể tạo. Ví dụ: bạn có thể tạo một biểu mẫu để lưu giữ thông tin chi tiết cho một hóa đơn, với nút OK, mã đằng sau nút (Sự kiện nhấp chuột) chứa mã sẽ chạy khi nút được nhấp.
  5. Mô-đun lớp học - mô-đun này được sử dụng để tạo các đối tượng tại thời điểm chạy. Mô-đun lớp được sử dụng bởi các lập trình viên VBA nâng cao và sẽ được đề cập ở phần sau.

Chèn mô-đun hoặc biểu mẫu vào mã của bạn

Để chèn một mô-đun mới vào mã của bạn, hãy nhấp vào Chèn trên thanh menu và nhấp vào Mô-đun.

Hoặc, nhấp vào Chèn mô-đun mà bạn sẽ tìm thấy trên dải băng tiêu chuẩn.

Để chèn một biểu mẫu người dùng mới vào mã của bạn, hãy chọn UserForm Lựa chọn.

Một biểu mẫu người dùng mới sẽ xuất hiện trong Trình khám phá dự án và sẽ được hiển thị trong Cửa sổ mã ở bên phải.

Bạn cũng có thể chèn một Mô-đun lớp học

Một mô-đun lớp được sử dụng để chèn các đối tượng vào dự án VBA của bạn.

Xóa Mô-đun hoặc Biểu mẫu khỏi Trình khám phá Dự án

Nhấp chuột phải vào mô-đun hoặc biểu mẫu bạn muốn xóa để hiển thị menu cắt ngắn nhấp chuột phải.

Nhấp chuột Di dời (trong trường hợp này UserForm1… )

HOẶC

Bấm vào Tập tin trình đơn, và sau đó nhấp vào Loại bỏ (UserForm1).

Một hộp cảnh báo sẽ xuất hiện hỏi bạn có muốn Xuất biểu mẫu hoặc mô-đun hay không trước khi xóa nó. Việc xuất biểu mẫu hoặc mô-đun cho phép bạn lưu nó thành một tệp riêng lẻ để sử dụng trong một dự án Excel khác vào một thời điểm nào đó.

Thường xuyên hơn không khi bạn loại bỏ một mô-đun hoặc biểu mẫu đó là vì bạn không cần nó, vì vậy hãy nhấp vào Không.

Cửa sổ thuộc tính

Bạn sẽ thấy cửa sổ thuộc tính bên dưới Trình khám phá dự án. Bạn có thể cần phải bật tính năng này.

nhấn F4 hoặc bấm vào Quan điểm, Cửa sổ thuộc tính.

Cửa sổ thuộc tính cho phép bạn xem các thuộc tính cho mô-đun hoặc biểu mẫu cụ thể được chọn trong Trình khám phá dự án. Khi bạn đang làm việc trong mô-đun, bạn có thể sử dụng cửa sổ thuộc tính để thay đổi tên của mô-đun. Đây là thuộc tính duy nhất có sẵn cho một mô-đun. Tuy nhiên, khi bạn đang làm việc với biểu mẫu, sẽ có nhiều thuộc tính hơn và cửa sổ Thuộc tính sau đó được sử dụng rộng rãi để kiểm soát hành vi của biểu mẫu và các điều khiển có trong biểu mẫu.

Khi bạn ghi lại một macro, nó sẽ tự động được đưa vào một mô-đun tiêu chuẩn. Mô-đun sẽ có tên là ‘Mô-đun 1' và bất kỳ mã nào có trong mô-đun đó đều có sẵn để được sử dụng trong suốt dự án của bạn. Bạn nên đổi tên mô-đun của mình thành một thứ gì đó quan trọng, điều đó sẽ giúp mã của bạn dễ tìm nếu bạn thêm nhiều mô-đun vào dự án.

Bạn cũng có thể đổi tên biểu mẫu của mình.

Nếu bạn đã đổi tên trang tính của mình trong Excel, tên của trang tính sẽ hiển thị dưới dạng tên của trang tính trong ngoặc đơn sau Trang tính1.

Nếu bạn muốn thay đổi tên của mô-đun phía sau trang tính, bạn có thể thay đổi nó giống như cách bạn thay đổi mô-đun và tên biểu mẫu người dùng - bằng cách thay đổi thuộc tính Tên trong Cửa sổ Thuộc tính.

Bạn mệt mỏi với việc tìm kiếm ví dụ về mã VBA? Hãy thử AutoMacro!

Cửa sổ mã

Cửa sổ mã hiển thị cho bạn các thủ tục và chức năng con có trong các mô-đun của bạn - nó hiển thị cho bạn mã thực. Khi bạn ghi macro, một thủ tục phụ sẽ được tạo cho bạn. Nếu bạn thêm khóa cắt ngắn vào macro, nó sẽ hiển thị dưới dạng nhận xét trong macro để cho bạn biết khóa cắt ngắn mà bạn đã gán cho macro là gì.

Ở trên cùng của cửa sổ mã là hai hộp tổ hợp. Những điều này cho phép bạn xem đối tượng nào (nếu có) trong Mô-đun mà bạn có thể đang làm việc và Quy trình bạn có thể đang làm việc.

Trong ví dụ trên, chúng tôi không làm việc trên bất kỳ đối tượng nào - do đó, điều này được đặt thành chung, nhưng chúng tôi đang làm việc trong thủ tục Gridlines.

Nếu chúng ta có nhiều hơn một thủ tục trong mô-đun này, chúng ta có thể sử dụng hộp tổ hợp ở trên để điều hướng đến các thủ tục khác.

Hiểu mã

Có 2 loại thủ tục - Thủ tục phụThủ tục hàm.

Thủ tục phụ

Trình ghi macro chỉ có thể ghi lại các thủ tục phụ. Một thủ tục phụ thực hiện những việc. Chúng thực hiện các hành động như định dạng bảng hoặc tạo bảng tổng hợp hoặc trong ví dụ về đường lưới, thay đổi cài đặt chế độ xem của cửa sổ đang hoạt động của bạn. Phần lớn các thủ tục được viết là các thủ tục Phụ. Tất cả các macro là thủ tục phụ.

Một thủ tục phụ bắt đầu bằng một Phụ tuyên bố và kết thúc bằng một Kết thúc Sub tuyên bố. Tên thủ tục luôn được theo sau bởi dấu ngoặc đơn.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = SaiKết thúc Sub

Thủ tục chức năng

Thủ tục Hàm trả về một giá trị. Giá trị này có thể là một giá trị đơn lẻ, một mảng, một dải ô hoặc một đối tượng. Các hàm thường thực hiện một số kiểu tính toán. Các hàm trong Excel có thể được sử dụng với Trình hướng dẫn Hàm hoặc chúng có thể được gọi từ các Thủ tục Con.

123 Chức năng Kilôgam (pound nhân đôi)Kilôgam = (pound / 2,2)Chức năng kết thúc

Hàm này có thể được sử dụng trong hộp thoại Chèn Hàm trong Excel để chuyển đổi Pound sang Kilôgam.

Tạo một thủ tục mới

Trước khi bạn tạo thủ tục mới, hãy đảm bảo rằng bạn đang ở trong mô-đun mà bạn muốn lưu trữ thủ tục. Bạn có thể tạo một thủ tục mới bằng cách nhấp vào menu Chèn, Thủ tục;

hoặc bạn có thể nhấp vào biểu tượng trên thanh công cụ

Hộp thoại sau sẽ xuất hiện

  1. Nhập tên của thủ tục mới của bạn vào hộp tên - hộp này phải bắt đầu bằng một chữ cái trong bảng chữ cái và có thể chứa các chữ cái và số và tối đa là 64 ký tự.
  2. Bạn có thể có một Thủ tục phụ, Một Thủ tục hàm hoặc một Bất động sản thủ tục. (Thuộc tính được sử dụng trong mô-đun Lớp và đặt thuộc tính cho điều khiển ActiveX mà bạn có thể đã tạo).
  3. Bạn có thể tạo phạm vi của thủ tục Công cộng hoặc Riêng tư. Nếu thủ tục là công khai (mặc định), thì nó có thể được sử dụng bởi tất cả các mô-đun trong dự án trong khi nếu thủ tục là riêng tư, nó sẽ chỉ có thể được sử dụng bởi mô-đun này.
  4. Bạn có thể khai báo các biến cục bộ trong thủ tục này là Statics (điều này là để thực hiện với Phạm vi của biến và đặt một biến mức thủ tục cục bộ công khai cho toàn bộ mô-đun). Chúng tôi sẽ không sử dụng tùy chọn này.

Khi bạn đã điền tất cả các chi tiết liên quan, hãy nhấp vào VÂNG.

Sau đó, bạn nhập mã của mình giữa các câu lệnh Sub và End Sub.

THAY THẾ - bạn có thể nhập câu lệnh Sub và End Sub trong mô-đun của mình chính xác như nó xuất hiện ở trên. Bạn không cần phải đặt từ Công khai trước từ phụ - nếu từ này bị bỏ qua, tất cả các thủ tục trong mô-đun sẽ tự động được giả định là Công khai.

Sau đó, bạn gõ Phụ và sau đó là tên thủ tục của bạn, theo sau là dấu ngoặc đơn.

I E:

1 Kiểm tra phụ ()

Các Kết thúc Sub câu lệnh sẽ tự động xuất hiện.

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

Viết mã dễ hiểu và dễ điều hướng

Thêm nhận xét

Hãy tập thói quen đưa bình luận vào mã của bạn để nhắc nhở bản thân ở giai đoạn sau về chức năng của mã.

Bạn có thể chèn nhận xét vào mã của mình nhưng phải nhập dấu nháy đơn trên bàn phím hoặc bạn có thể bật thanh công cụ Chỉnh sửa và sử dụng nút nhận xét xuất hiện trên thanh công cụ đó.

Nhấp chuột phải vào các thanh công cụ.

Lựa chọn Chỉnh sửa.

Bấm vào nút bình luận để chèn bình luận vào mã của bạn.

GHI CHÚ: Bạn thường chỉ sử dụng nút chặn bình luận khi bạn có một vài dòng mã muốn bình luận (và không xóa). Sẽ dễ dàng hơn cho một nhận xét duy nhất sử dụng dấu nháy đơn.

Thụt lề

Một thói quen tốt cần có là thụt lề mã của bạn để dễ đọc qua mã và xem các phần khác nhau của mã.

Có thể có nhiều mức độ thụt lề, tùy thuộc vào logic của mã của bạn.

UpperCase so với LowerCase

VBA điều chỉnh tất cả mã thành Trường hợp thích hợp, vì vậy nếu bạn nhập TẤT CẢ IN UPPERCASE hoặc tất cả bằng chữ thường, nó sẽ Điều chỉnh lại mã của bạn thành Trường hợp thích hợp!

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

Tự động hoàn thành

Khi bạn điều chỉnh mã của mình, bạn sẽ nhận thấy rằng VBA cố gắng giúp bạn bằng cách đề xuất mã mà bạn có thể nhập. Điều này được gọi là Tự động hoàn thành.

Lỗi bẫy và gỡ lỗi

Có 4 loại lỗi có thể xảy ra khi bạn viết mã VBA - Lỗi cú pháp, Lỗi biên dịch, Lỗi thời gian chạy và Lỗi logic.

Lỗi cú pháp

Những điều này xảy ra khi bạn viết mã không chính xác. Điều này được VBA ngăn chặn phần lớn bằng cách bật tùy chọn Kiểm tra cú pháp. Tính năng này thường được bật theo mặc định nhưng nếu của bạn bị tắt, thì hãy bật nó lên bằng cách đi tới Công cụ, Tùy chọn và bấm vào Kiểm tra cú pháp tự động.

Nếu bạn nhập mã không chính xác (ví dụ: loại trừ thứ gì đó nên có trong mã), một hộp thông báo sẽ bật lên trong khi bạn đang viết mã cho bạn cơ hội sửa đổi mã.

Lỗi biên dịch

Những điều này xảy ra khi mã bị thiếu một thứ gì đó ngăn mã chạy. Lỗi không xuất hiện khi bạn viết mã, nhưng nó xảy ra khi bạn thử và chạy mã.

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

Lỗi thời gian chạy

Những điều này xảy ra khi bạn chạy mã, cú pháp và biên dịch chính xác, nhưng có điều gì đó khác xảy ra ngăn mã chạy chính xác.

Trong trường hợp này, Sheet4 không tồn tại. Thông báo lỗi này hữu ích hơn thông báo lỗi biên dịch vì nó cho bạn cơ hội Gỡ lỗi mã và xem tại sao nó không hoạt động.

Nhấp chuột Gỡ lỗi. Mã sẽ dừng ở lỗi và đánh dấu lỗi bằng màu vàng cho phép bạn sửa lỗi của mình.

Sửa đổi Trang tính4 thành Trang tính2 (vì Trang tính 2 tồn tại và Trang tính 4 không tồn tại).

nhấn F5 hoặc nhấp vào Tiếp tục trên thanh công cụ.

Lỗi lôgic

Đây là những thứ khó tìm nhất. Trong trường hợp của họ, mã được viết chính xác nhưng logic thực tế của mã bị sai sót, vì vậy bạn có thể không nhận được kết quả mà bạn muốn từ mã. Đối với các lỗi logic, bẫy lỗi là điều cần thiết.

Có 2 loại bẫy lỗi

Khi gặp lỗi, hãy chuyển đến

Đoạn mã sau để mở hộp thoại Mở Tệp - nó sẽ báo lỗi cho chúng tôi nếu người dùng nhấp vào Hủy bỏ.

Khi bạn chạy mã, hộp thoại Mở Tệp sẽ xuất hiện.

Khi bạn nhấp vào hủy bỏ, lỗi sẽ xảy ra.

Bẫy lỗi sau đây sẽ tiếp tục mã đến Chức năng thoát của mã và trả về thông báo.

Điều này sử dụng On Error GoTo để thoát khỏi chức năng.

Khi bạn chạy mã và nhấp vào hủy, hộp thông báo sẽ xuất hiện.

Khi có lỗi Tiếp tục tiếp theo

Nếu bạn đặt Khi có lỗi Tiếp tục tiếp theo Tuyên bố vào mã của bạn, dòng có lỗi sẽ bị bỏ qua và mã sẽ tiếp tục.

Ví dụ: nếu người dùng nhấp vào Hủy trong mã bên dưới, mã sẽ không cung cấp cho bạn lỗi thời gian chạy, nó sẽ chỉ kết thúc mà mã không cần làm gì thêm.

Đôi khi điều này rất hữu ích nhưng cũng có thể rất nguy hiểm trong một số trường hợp vì nó không trả về thông báo tại sao bạn gặp lỗi.

Bạn sẽ giúp sự phát triển của trang web, chia sẻ trang web với bạn bè

wave wave wave wave wave