Thuộc tính đối tượng phạm vi hữu ích cho VBA Excel Mọi người nên biết

0
3

Excel VBA: Thuộc tính giá trị

Thuộc tính Value đại diện cho giá trị chứa trong một ô. Đây là một thuộc tính đọc-ghi, vì vậy mã VBA của bạn có thể đọc hoặc thay đổi giá trị.

Câu lệnh sau hiển thị hộp thông báo hiển thị giá trị trong ô A1 trên Trang tính 1:

Bảng tính MsgBox ("Trang tính 1"). Phạm vi ("A1"). Giá trị

Lý do là bạn chỉ có thể đọc thuộc tính Giá trị cho một đối tượng Phạm vi một ô. Ví dụ: câu lệnh sau đây tạo ra lỗi:

Bảng tính MsgBox ("Trang tính 1"). Phạm vi ("A1: C3"). Giá trị

Tuy nhiên, bạn có thể thay đổi thuộc tính Giá trị cho một phạm vi có kích thước bất kỳ. Câu lệnh sau nhập số 123 vào mỗi ô trong một phạm vi:

Bảng tính ("Trang tính 1"). Phạm vi ("A1: C3"). Giá trị = 123
Phạm vi ("A1"). Giá trị = 75
Phạm vi ("A1") = 75

Excel VBA: Thuộc tính Text

Thuộc tính Text trả về một chuỗi đại diện cho văn bản như được hiển thị trong một ô – giá trị được định dạng. Thuộc tính Text là chỉ đọc. Giả sử rằng ô A1 chứa giá trị 12.3 và được định dạng để hiển thị hai số thập phân và ký hiệu đô la ($ 12,30). Câu lệnh sau hiển thị hộp thông báo chứa $ 12,30:

MsgBox Worksheet ("Sheet1"). Phạm vi ("A1"). Văn bản

Nhưng câu lệnh tiếp theo sẽ hiển thị một hộp thông báo chứa 12.3:

Bảng tính MsgBox ("Trang tính 1"). Phạm vi ("A1"). Giá trị

Nếu ô chứa công thức, thuộc tính Text trả về kết quả của công thức. Nếu một ô chứa văn bản, thuộc tính Văn bản và thuộc tính Giá trị luôn trả về cùng một thứ, bởi vì văn bản (không giống như một số) không thể được định dạng để hiển thị khác nhau.

Excel VBA: Thuộc tính Count

Thuộc tính Count trả về số lượng ô trong một phạm vi. Nó đếm tất cả các ô, không chỉ các ô không trống. Count là một tài sản chỉ đọc, như bạn mong đợi. Câu lệnh sau truy cập vào thuộc tính Count của phạm vi và hiển thị kết quả (9) trong hộp thông báo:

Phạm vi MsgBox ("A1: C3"). Đếm

Excel VBA: Thuộc tính Cột và Hàng

Thuộc tính Cột trả về số cột của phạm vi một ô. Thuộc tính phụ của nó, thuộc tính Row, trả về số hàng của một phạm vi ô đơn. Cả hai đều là thuộc tính chỉ đọc. Ví dụ: câu lệnh sau hiển thị 6 vì ô F3 nằm trong cột thứ sáu:

MsgBox Sheets ("Sheet1"). Phạm vi ("F3"). Cột

Biểu thức tiếp theo hiển thị 3 vì ô F3 nằm ở hàng thứ ba:

MsgBox Sheets ("Sheet1"). Phạm vi ("F3"). Hàng

Excel VBA: Thuộc tính Địa chỉ

Địa chỉ, thuộc tính chỉ đọc, hiển thị địa chỉ ô cho đối tượng Phạm vi dưới dạng tham chiếu tuyệt đối (ký hiệu đô la trước chữ cái cột và trước số hàng). Câu lệnh sau hiển thị hộp thông báo hiển thị bên dưới:

Phạm vi MsgBox (Ô (1, 1), Ô (5, 5)). Địa chỉ

Excel VBA: Thuộc tính HasFormula

Thuộc tính HasFormula (chỉ đọc) trả về True nếu phạm vi một ô chứa công thức. Nó trả về Sai nếu ô chứa thứ gì đó không phải là công thức (hoặc trống). Nếu phạm vi bao gồm nhiều hơn một ô, VBA chỉ trả về Đúng nếu tất cả các ô trong phạm vi chứa công thức hoặc Sai nếu tất cả các ô trong phạm vi không có công thức. Thuộc tính trả về Null nếu phạm vi chứa hỗn hợp các công thức và không dạng. Null là một vùng đất không có đàn ông: Câu trả lời là Không đúng cũng không sai và bất kỳ ô nào trong phạm vi có thể có hoặc không có công thức.

Ví dụ: giả sử rằng ô A1 chứa một giá trị và ô A2 chứa công thức. Các báo cáo sau đây tạo ra lỗi vì phạm vi không bao gồm tất cả các công thức hoặc tất cả các công thức không:

Dim FormulaTest As Boolean
FormulaTest = Range ("A1: A2"). HasFormula

Kiểu dữ liệu Boolean chỉ có thể xử lý Đúng hoặc Sai. Null khiến Excel phàn nàn và hiển thị thông báo lỗi. Để khắc phục loại tình huống này, điều tốt nhất cần làm là đảm bảo rằng biến FormulaTest được khai báo là Biến chứ không phải là Boolean. Ví dụ sau sử dụng hàm TypeName tiện dụng của VBA (cùng với cấu trúc If-Then-Else) để xác định kiểu dữ liệu của biến FormulaTest. Nếu phạm vi có hỗn hợp các công thức và không đúng công thức, hộp thông báo sẽ hiển thị Hỗn hợp! Nếu không, nó sẽ hiển thị Đúng hoặc Sai .

Sub CheckForForm Formula ()
Dim FormulaTest As Biến thể
FormulaTest = Range ("A1: A2"). HasFormula
Nếu TypeName (FormulaTest) = "Null" thì
MsgBox "Hỗn hợp!"
Khác
MsgBox FormulaTest
Kết thúc nếu
Kết thúc phụ

Excel VBA: Thuộc tính Phông chữ

Một tài sản có thể trả về một đối tượng. Thuộc tính Font của đối tượng Phạm vi VBA Excel là một ví dụ khác về khái niệm đó tại nơi làm việc. Thuộc tính Font trả về một đối tượng Font.

Một đối tượng Font, như bạn có thể mong đợi, có nhiều thuộc tính có thể truy cập. Để thay đổi một số khía cạnh của phông chữ của phạm vi, trước tiên bạn phải truy cập đối tượng Phông chữ của phạm vi và sau đó thao tác các thuộc tính của đối tượng đó. Điều này có thể gây nhầm lẫn, nhưng có lẽ ví dụ này sẽ giúp.

Câu lệnh sau sử dụng thuộc tính Font của đối tượng Range để trả về đối tượng Font. Sau đó, thuộc tính Bold của đối tượng Font được đặt thành True. Nói một cách dễ hiểu, câu lệnh này làm cho ô hiển thị in đậm:

Phạm vi ("A1"). Phông chữ.Bold = True

Sự thật là, bạn không thực sự cần phải biết rằng bạn đang làm việc với một đối tượng Phông chữ đặc biệt có trong đối tượng Phạm vi VBA của Excel. Miễn là bạn sử dụng cú pháp thích hợp, nó hoạt động tốt. Thông thường, ghi lại hành động của bạn bằng trình ghi macro cho bạn biết mọi thứ bạn cần biết về cú pháp thích hợp.

Excel VBA: Nội thất

Đây là một ví dụ khác về một thuộc tính trả về một đối tượng. Thuộc tính Nội thất của đối tượng Phạm vi trả về một đối tượng Nội thất (tên lạ, nhưng đó là tên gọi của nó). Kiểu tham chiếu đối tượng này hoạt động giống như thuộc tính Font.

Ví dụ: câu lệnh sau thay đổi thuộc tính Màu của đối tượng Nội thất có trong đối tượng Phạm vi:

Phạm vi ("A1"). Nội thất. Màu = 8421504

Nói cách khác, tuyên bố này thay đổi nền của ô thành màu xám ở giữa. Cái gì vậy Bạn không biết rằng 8421504 có màu xám trung bình? Để biết thêm thông tin chi tiết về thế giới màu sắc tuyệt vời của Excel, hãy xem thanh bên gần đó. Một lớp sơn màu nhanh và bẩn.

Excel VBA: Thuộc tính Công thức

Thuộc tính Công thức đại diện cho công thức trong một ô. Đây là một thuộc tính đọc-ghi, vì vậy bạn có thể truy cập nó để xem công thức trong một ô hoặc chèn công thức vào một ô. Ví dụ: câu lệnh sau nhập công thức SUM vào ô A13:

Phạm vi ("A13"). Công thức = "= SUM (A1: A12)"

Lưu ý rằng công thức là một chuỗi văn bản và được đặt trong dấu ngoặc kép. Cũng lưu ý rằng công thức bắt đầu bằng một dấu bằng, như tất cả các công thức làm.

Nếu công thức tự nó chứa dấu ngoặc kép, mọi thứ sẽ có một chút khó khăn. Giả sử bạn muốn chèn công thức này bằng cách sử dụng VBA:

= SUM (A1: A12) & "Cửa hàng"

Công thức này hiển thị một giá trị theo sau là từ Cửa hàng . Để làm cho công thức này được chấp nhận, bạn cần thay thế mọi dấu ngoặc kép trong công thức bằng hai dấu ngoặc kép. Mặt khác, VBA bị nhầm lẫn và tuyên bố rằng có lỗi cú pháp (vì có!). Vì vậy, đây là một tuyên bố nhập một công thức có chứa dấu ngoặc kép:

Phạm vi ("A13"). Công thức = "= SUM (A1: A12) &" "Cửa hàng" ""

Nhân tiện, bạn có thể truy cập thuộc tính Công thức của một ô ngay cả khi ô đó không có công thức. Nếu một ô không có công thức, thuộc tính Công thức trả về giống như thuộc tính Giá trị của nó.

Nếu bạn cần biết liệu một ô có công thức hay không, hãy sử dụng thuộc tính HasFormula.

Excel VBA: Thuộc tính NumberFormat

Thuộc tính NumberFormat biểu thị định dạng số (được biểu thị dưới dạng chuỗi văn bản) của đối tượng Phạm vi. Đây là một thuộc tính đọc-ghi, vì vậy mã VBA của bạn có thể kiểm tra định dạng số hoặc thay đổi nó. Câu lệnh sau thay đổi định dạng số của cột A thành tỷ lệ phần trăm với hai chữ số thập phân:

Cột ("A: A"). NumberFormat = "0,00%"

Thực hiện theo các bước sau để xem danh sách các định dạng số khác (tốt hơn hết, hãy bật trình ghi macro trong khi bạn thực hiện việc này):

  • Kích hoạt một bảng tính.
  • Nhấn Ctrl + 1 để truy cập hộp thoại Format Cells.
  • Nhấp vào tab Số.
  • Chọn danh mục Tùy chỉnh để xem và áp dụng một số chuỗi định dạng số bổ sung.

Xem thêm: Tạo Báo cáo Tên bằng Mã VBA

Khóa học VBA Excel tại Hà Nội

LEAVE A REPLY

Please enter your comment!
Please enter your name here