Xác định phạm vị một range (mảng) theo vị trí vùng được xác định trên excel.

  • Thread starter Thread starter qazxsw
  • Ngày gửi Ngày gửi
Liên hệ QC
Bạn quét chọn 1 vùng rồi chạy code này, xem kết quả in ra trong cửa sổ Immediate Window nhé:
PHP:
Sub test()
Dim rng
rng = Selection.Value

'In dong + cot + dia chi ô dau
Debug.Print Selection.Cells(1, 1).Address
Debug.Print Selection.Cells(1, 1).Row
Debug.Print Selection.Cells(1, 1).Column

'In dong + cot + dia chi ô cuoi
Debug.Print Selection.Cells(UBound(rng), UBound(rng, 2)).Address
Debug.Print Selection.Cells(UBound(rng), UBound(rng, 2)).Row
Debug.Print Selection.Cells(UBound(rng), UBound(rng, 2)).Column

End Sub
[/code]
 
Chi tiết cho các bạn thích tham khảo về ngữ pháp. Những điều tôi nói sau đây rất khó tìm qua mạng, vì nó là kinh nghiệm, sử dụng nhiều rồi biết.

Ở trên tôi có nhắc khéo "cả chục năm về trước" khi nói về "không hiểu ý nghĩa của cặp ngoặc vuông"
Ngày xưa tôi đã từng một vài lần giải thích.

[ ] là một kiểu gọi hàm Evaluate. Tuy nhiên, nếu các bạn đọc tài liệu thì sẽ thấy nói nó có nhiều giới hạn. Hàm Evaluate uyển chuyển hơn, tuy rằng cũng có một số giới hạn mà tài liệu ít khi nói tới - dùng nhiều thì biết.

Đi thẳng vào vấn đề, ở trên tôi nói "một kiểu gọi". Nghĩa là [ ] coi như lệnh gọi Evaluate. Chỗ khác nhau là:

(A) ngữ pháp sử dụng cặp ngoặc vuông in hệt như cách ta ghi công thức trên bảng tính. Cái gì không dùng ddowcj trong bảng tính thì cũng không dùng được với [ ].

View attachment 279983

Vì vậy cách sử dụng này hoàn toàn hợp lệ cho cách viết [A1] để tham chiếu đến Range("A1")
Nhưng cách này không thể nào dùng cho biến số
bien1 = 1
bien2 = [ bien1 ] ---> VBA syntax error
Dễ hiểu: trong bảng tính làm gì có biến số.

(B) ngữ pháp Evaluate tuân thủ theo luật ngôn VBA. Biểu thức nạp vào Evaluate phải đạt điều kiện VBA. Ta cũng có thể tính hệt như trên, nhưng tham số là hàm Match thì không đạt tiêu chuẩn VBA

View attachment 279984

Muốn được như trên thì ta phải đóng gói cái lệnh cần tính bên trong dấu nháy kép, tức là chuyển chúng thành chuỗi để làm tham số hợp lệ cho Evaluate.

View attachment 279985

Với các biểu thức thật đơn giản chỉ dùng hằng số, không biến số thì hai cái như nhau:

View attachment 279989
cảm ơn bạn, qua giải thích bạn mình hiểu thêm nhiều.
 
Web KT

Bài viết mới nhất

Back
Top Bottom