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 nào của trang tính 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

# 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ở, 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 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 dải ô đượ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 chuyển đế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.

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

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ờ hãy 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 sự 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 đi đế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 một dòng mã cụ thể gặp lỗi, VBA sẽ 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 xem 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 xóa trang tính vào tháng 4 và thêm 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ì đôi khi, nếu không có tên trang tính 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ã khi lỗi Bật chuyển sang dòng tiếp theo.

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

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à trong 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 đến 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, tác vụ của bạn có thể không được hoàn thành một cách hoàn hảo.

thú vị bài viết...