Vba lấy giá trị tên sheet của 1 range

Khái niệm
Range là một vùng dữ liệu trong các Sheet. Chúng ta lấy ví dụ:

Vba lấy giá trị tên sheet của 1 range

Tại đây, chúng ta muốn lấy vùng dữ liệu từ A2:C4 để xử lý trong VBA. Lúc này, A2:C4 là một Range


Cấu trúc
Application.
{Workbook}.Sheets({Tên Sheet}).Range({Vùng dữ liệu}).{Thuộc tính}
Các cấu trúc tô đỏ là bắt buộc cần có.

  • {Workbook}: Khai báo Workbook
  • {Tên Sheet}: Tên Sheet
  • {Vùng dữ liệu}: Là vùng Range bạn cần thao tác
  • {Thuộc tính}: Các thuộc tính của Range bạn muốn thao tác

Ta sẽ có một số {Thuộc tính} thường dùng như sau:

  • Value: Giá trị của Range
  • Address: Địa chỉ của Range, VD: $A$1:$B$6
  • Interior.Color: Giá trị màu nền RGB tại Range được chọn
  • Font.Color: Giá trị màu chữ RGB tại Range
  • Calculate: Tính toán công thức ngay lập tức
  • ClearContents: Xoá toàn bộ nội dung Range
  • Column: Trả về tổng số cột trong Range
  • Row: Trả về tổng số hàng trong Range
  • Count: Trả về tổng số ô trong Range
  • Merge: Merge vùng trong Range
  • Copy: Copy toàn bộ Range
  • Select: Chọn Range trên Sheet.
  • ...

Tuỳ theo thuộc tính, Chúng ta có thể gán giá trị trực tiếp cho nó hoặc kiểm tra xem nó bằng bao nhiêu, VD như thuộc tính Value, Ta vừa có gán trực tiếp cho nó vừa có thể kiểm tra xem nó bằng bao nhiêu. Nhưng đối với thuộc tính Row, ta chỉ có thể kiểm tra mà không thể gán giá trị cho nó. Ta sẽ xét VD sau đây:
Gán giá trị cho Range

Lấy giá trị trong Range vào mảng


Cells
Cell có thể hiểu là 1 ô, mỗi 1 Cell chỉ đại diện một ô duy nhất. Nhiều Cell liên tiếp tập hợp lại sẽ thành 1 Range. Cell được xác định bằng số dòng và số cột trong Sheet. Tương tự như Range, Cell có cấu trúc như sau:
Application.{Workbook}.Sheets({Tên Sheet}).Cells({Dòng}, {Cột}).{Thuộc tính}

  • {Dòng}: Số dòng
  • {Cột}: Số cột tính theo quy đổi A,B,C... tương ứng là 1,2,3...

VD: Ta muốn khai báo biến A sẽ bằng ô C3 trong hình. Giả sử, Sheet trong hình đang là Sheet1

Vba lấy giá trị tên sheet của 1 range

Ô C3 nằm ở vị trí, dòng số 3 và cột số 3 (Cột C). Ta có code như sau:

Bên cạnh đó, ta hoàn toàn có thể viết Range như một Cell


Các cách viết Range
Trước khi đi tiếp ta cần phân biệt 2 khái niệm: Sheet hiện hành và Sheet xử lý:

  • Sheet hiện hành: Là Sheet đang xuất hiện trên màn hình Excel mà bạn đang thao tác
  • Sheet xử lý: Là Sheet xử lý dữ liệu, Sheet xử lý có thể là Sheet hiện hành hoặc bất cứ Sheet nào được khai báo.

Nếu bạn muốn xử lý dữ liệu ở Sheet hiện hành (Sheet bạn đang thao tác) thì cấu trúc code bạn có thể bỏ cấu trúc trước Range:
Range({Vùng dữ liệu}).{Thuộc tính}

Hoặc muốn nhanh hơn bạn có thể viết
[{Vùng dữ liệu}].{Thuộc tính}

VD: Bạn muốn chọn ô A1 tại Sheet hiện hành

Lưu ý: {Vùng dữ liệu} lúc này không nằm trong dấu ""


Tổng kết
Không khó phải không nào, bạn đã hiểu hết về Range chưa, cho mình biết nhé.

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

  • Dán lên cao

  • CHE
  • 05/05/2022

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

Vba lấy giá trị tên sheet của 1 range

  • Thẻ cunghocexcel rangetrongvba