Tuyên bố VBA GoTo | Làm thế nào để sử dụng GoTo Statement trong VBA?

Câu lệnh Excel VBA GoTo

Câu lệnh VBA GoTo được sử dụng khi lỗi xảy ra trong khi chạy mã thay vì hiển thị lỗi để tiếp tục dòng mã tiếp theo bằng cách bỏ qua thông báo lỗi. Có hai loại câu lệnh GOTO, một là chọn bất kỳ phạm vi trang tính nào trong sổ làm việc được chỉ định và một loại khác là trình xử lý lỗi.

Để khắc phục các lỗi dự đoán trong VBA, chúng tôi có một chức năng gọi là "GOTO". Chúng ta sẽ thấy cả hai loại câu lệnh GoTo trong bài viết này.

2 cách sử dụng GoTo Statement trong VBA Code

Bạn có thể tải Mẫu VBA GoTo Excel này tại đây - Mẫu VBA GoTo Excel

# 1 - Phương pháp Application.GoTo

Nếu bạn muốn chuyển đến sổ làm việc cụ thể hoặc trang tính cụ thể trong tất cả các sổ làm việc đã mở thì chúng ta có thể sử dụng phương thức Application.GoTo câu lệnh.

Hãy xem cú pháp của phương thức Application.GoTo

  • [Tham chiếu]: Đây không phải là gì ngoài một tham chiếu ô được chỉ định. Nếu tham chiếu không được cung cấp theo mặc định, nó sẽ đưa bạn đến phạm vi ô được sử dụng cuối cùng.
  • [Cuộn]: Đây là một câu lệnh logic TRUE hoặc FALSE. Nếu giá trị là TRUE nó sẽ cuộn qua cửa sổ, nếu giá trị nếu FALSE nó sẽ không cuộn qua cửa sổ.
Thí dụ

Nếu bạn muốn đi đến một ô cụ thể trong trang tính cụ thể, chúng ta có thể sử dụng phương pháp Goto. Tôi có 3 tờ có tên Jan, Feb và Mar.

Bây giờ nếu tôi muốn chuyển đến ô C5 trong trang tính Jan, tôi sẽ sử dụng bộ mã dưới đây.

Bước 1: Bắt đầu tên macro excel.

Mã:

 Sub GoTo_Example1 () End Sub 

Bước 2: Bắt đầu phương thức “ Application.GoTo

Mã:

Sub GoTo_Example1 ()

Application.Goto

Kết thúc Sub

Bước 3: Trong đối số tham chiếu, chúng ta cần chỉ định tên trang tính và trong trang tính đó, chúng ta cần đề cập đến ô cụ thể.

Mã:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5") End Sub 

Bước 4: Đề cập đến cuộn là TRUE.

Mã:

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = True End Sub 

Bước 5: Bây giờ chạy mã này bằng phím F5 hoặc bạn cũng có thể chạy mã này theo cách thủ công, nó sẽ đưa bạn đến trang tính được chỉ định và ô được chỉ định.

Bây giờ tôi sẽ thay đổi đối số cuộn thành FALSE và xem thay đổi mà nó sẽ gặp phải.

 Sub GoTo_Example1 () Application.Goto Reference: = Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub 

Nếu bạn muốn chuyển đến một sổ làm việc cụ thể thì bạn cũng cần phải đề cập đến tên sổ làm việc trước tên sổ làm việc.

 Sub GoTo_Example1 () Application.Goto Reference: = Workbooks ("Book1.xlsx"). Worksheets ("Jan"). Range ("C5"), Scroll: = False End Sub 

# 2 - Phương pháp xử lý lỗi

Khi dòng mã cụ thể gặp lỗi thì VBA ngừng thực thi phần còn lại của mã và hiển thị thông báo lỗi.

Ví dụ, hãy nhìn vào dòng mã dưới đây.

 Sub GoTo_Example2 () Sheets ("Tháng 4"). Xóa Sheets. Thêm End Sub 

Đoạn mã trên cho biết hãy xóa trang tính April và thêm một trang tính mới. Trong sổ làm việc đang hoạt động nếu có bất kỳ tên trang tính nào được gọi là April, nó sẽ xóa hoặc nếu không nó sẽ hiển thị hộp thoại thông báo lỗi bên dưới.

Khi tôi chạy mã này, sổ làm việc của tôi không có trang tính được gọi là April, vì vậy mã VBA không thể tìm thấy tên trang tính và gây ra lỗi. Đôi khi chúng ta cần bỏ qua lỗi này vì thường nếu không có tên trang tính được gọi là April thì chúng ta cần phải tiếp tục với các dòng mã khác.

Để loại bỏ lỗi này, chúng ta có thể sử dụng phương thức GoTo làm trình xử lý lỗi.

Bây giờ tôi sẽ sửa đổi mã vì lỗi Bật chuyển đến dòng tiếp theo

 Sub GoTo_Example2 () Bị lỗi GoTo NextLine Sheets ("April"). Xóa NextLine: Sheets. Thêm End Sub 

Bây giờ nếu bạn chạy điều này, nó sẽ thêm trang tính mới mặc dù không có tên trang tính nào được gọi là April.

Câu lệnh “On Error GoTo NextLine” hiểu rằng nếu có bất kỳ lỗi nào xảy ra, nó sẽ chuyển sang dòng tiếp theo và ở dòng tiếp theo, mã VBA là thêm một trang tính mới.

Những điều cần ghi nhớ

  • Nếu bạn muốn chuyển sang dòng tiếp theo khi lỗi xảy ra, bạn cũng có thể sử dụng câu lệnh On Error Resume Next VBA.
  • Để chuyển sang phần tiếp theo, bạn cần chắc chắn rằng dòng mã cụ thể đó có thể xảy ra lỗi.
  • Nếu dòng quan trọng của mã bỏ qua với trình xử lý lỗi này thì tác vụ của bạn có thể không được hoàn thành một cách hoàn hảo.

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