Phạm vi lựa chọn VBA | Làm thế nào để chọn một phạm vi trong Excel VBA?

Phạm vi lựa chọn VBA trong Excel

Sau khi các nội dung cơ bản với VBA, điều quan trọng là phải hiểu cách làm việc với một loạt các ô trong trang tính. Khi bạn bắt đầu thực thi các mã, hầu hết thời gian bạn cần phải làm việc với một loạt các ô. Vì vậy, điều quan trọng là phải hiểu cách làm việc với một phạm vi ô và một trong những khái niệm như vậy là VBA “Lựa chọn phạm vi”. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách làm việc với “Phạm vi lựa chọn” trong Excel VBA.

Lựa chọn và Phạm vi là hai chủ đề khác nhau nhưng khi chúng ta nói chọn phạm vi hoặc lựa chọn phạm vi thì đó là một khái niệm duy nhất. RANGE là một đối tượng, “Selection” là một thuộc tính và “Select” là một phương thức. Mọi người có xu hướng nhầm lẫn với các thuật ngữ này, điều quan trọng là phải biết sự khác biệt nói chung.

Làm thế nào để chọn một phạm vi trong Excel VBA?

Bạn có thể tải xuống Mẫu Excel phạm vi lựa chọn VBA này tại đây - Mẫu Excel phạm vi lựa chọn VBA

Ví dụ 1

Ví dụ: giả sử bạn muốn chọn ô A1 trong trang tính thì trước tiên chúng ta cần chỉ định địa chỉ ô bằng cách sử dụng đối tượng RANGE như bên dưới.

Mã:

Sau khi đề cập đến ô mà chúng ta cần chọn dấu chấm để xem danh sách IntelliSense được liên kết với đối tượng RANGE.

Hình thành danh sách đa dạng này chọn phương pháp "Chọn".

Mã:

 Phạm vi phụ_Ví dụ1 () Phạm vi ("A1"). Chọn Kết thúc phụ 

Bây giờ, mã này sẽ chọn ô A1 trong trang tính đang hoạt động.

Nếu bạn muốn chọn ô trong các trang tính khác nhau thì trước tiên chúng ta cần chỉ định trang tính theo tên của nó. Để chỉ định trang tính, chúng ta cần sử dụng đối tượng "WORKSHEET" và nhập tên trang tính trong dấu ngoặc kép.

Ví dụ: nếu bạn muốn chọn ô A1 trong trang tính “Bảng dữ liệu” thì trước tiên hãy chỉ định trang tính giống như bên dưới.

Mã:

 Sub Range_Example1 () Worksheets ("Bảng dữ liệu") End Sub 

Sau đó, tiếp tục mã để chỉ định những gì chúng ta cần làm trong trang tính này. Trong “Bảng dữ liệu”, chúng ta cần chọn ô A1, vì vậy mã sẽ là RANGE (“A1”). Hãy chọn.

Mã:

 Sub Range_Example1 () Worksheets ("Bảng dữ liệu"). Range ("A1"). Chọn End Sub 

Khi bạn cố gắng thực thi mã này, chúng tôi sẽ nhận được lỗi bên dưới.

Lý do cho điều này là "chúng tôi không thể cung cấp trực tiếp đối tượng phạm vi và phương thức chọn cho đối tượng bảng tính".

Đầu tiên, chúng ta cần chọn hoặc kích hoạt bảng tính VBA sau đó chúng ta có thể làm bất cứ điều gì chúng ta muốn làm.

Mã:

 Sub Range_Example1 () Worksheets ("Data Sheet"). Kích hoạt Range ("A1"). Chọn End Sub 

Bây giờ, điều này sẽ chọn ô A1 trong trang tính “Bảng dữ liệu”.

Ví dụ # 2 - Làm việc với Phạm vi đã Chọn Hiện tại

Chọn là một thứ khác và làm việc với một phạm vi ô đã được chọn là khác nhau. Giả sử bạn muốn chèn giá trị “Hello VBA” vào ô A1 thì chúng ta có thể thực hiện theo hai cách.

Đầu tiên, chúng ta có thể chuyển trực tiếp mã VBA dưới dạng RANGE (“A1”). Giá trị = “Xin chào VBA”.

Mã:

 Sub Range_Example1 () Range ("A1"). Value = "Hello VBA" End Sub 

Những gì mã này sẽ làm là điều này sẽ chỉ chèn giá trị “Xin chào VBA” vào ô A1 bất kể ô nào được chọn hiện tại.

Nhìn vào kết quả trên của đoạn mã. Khi chúng tôi thực thi mã này, nó đã chèn giá trị “Xin chào VBA” mặc dù ô hiện đang được chọn là B2.

Thứ hai, chúng ta có thể chèn giá trị vào ô bằng cách sử dụng thuộc tính "Selection". Đối với điều này trước tiên, chúng ta cần chọn ô theo cách thủ công và thực thi mã.

Mã:

 Sub Range_Example1 () Selection.Value = "Hello VBA" End Sub 

Những gì mã này sẽ làm là nó sẽ chèn giá trị “Hello VBA” vào ô hiện đang được chọn. Để có một ví dụ, hãy xem ví dụ dưới đây về việc thực thi.

Khi tôi thực thi mã, ô được chọn hiện tại của tôi là B2 và mã của chúng tôi đã chèn cùng một giá trị vào ô hiện được chọn.

Bây giờ tôi sẽ chọn ô B3 và thực thi, ở đó chúng tôi cũng sẽ nhận được cùng một giá trị.

Một điều nữa chúng ta có thể làm với thuộc tính "selection" là chúng ta cũng có thể chèn giá trị vào nhiều ô. Ví dụ, tôi sẽ chọn phạm vi ô từ A1 đến B5 bây giờ.

Bây giờ nếu tôi thực thi mã, đối với tất cả các ô đã chọn, chúng tôi sẽ nhận được giá trị là “Xin chào VBA”.

Vì vậy, sự khác biệt đơn giản giữa chỉ định địa chỉ ô theo đối tượng RANGE và thuộc tính Lựa chọn là, trong mã đối tượng Phạm vi sẽ chèn giá trị vào các ô được chỉ định rõ ràng.

Nhưng trong đối tượng Selection, không quan trọng bạn đang ở ô nào, nó sẽ chèn giá trị đã đề cập vào tất cả các ô đã chọn.

Những điều cần nhớ ở đây

  • Chúng tôi không thể cung cấp trực tiếp phương thức chọn trong thuộc tính Lựa chọn.
  • RANGE là một đối tượng và lựa chọn là thuộc tính.
  • Thay vì phạm vi, chúng ta có thể sử dụng thuộc tính CELLS.