Đối tượng Range sẽ là 1 trong những đối tượng chúng ta sử dụng đến nhiều nhất trong quá trình lập trình với VBA trong Excel. Đối tượng này tạo nên bảng tính Excel, nhiều bảng tính (Worksheet) sẽ tạo nên 1 Workbook hay 1 file Excel …
23
SCAN MÃ
ĐỂ NHẬN NGAY COUPON
GIẢM GIÁ 40%
KHOÁ HỌC
VBA101 - VBA cơ bản cho người mới bắt đầu
Bấm nút http://bit.ly/2eEOWsZ hoặc
↳ Câu lệnh này sẽ tham chiếu đến vùng A1 và đặt thuộc tính giá trị của vùng A1 với nội dung “Hoc Excel Online”
Range(“A1”).value = “Hoc Excel Online”
↳ Câu lệnh này sẽ tham chiếu đến vùng A1:B5 và đặt thuộc tính giá trị của vùng A1:B5 với nội dung “Hoc Excel Online”
Range(“A1:B5”).value = “Hoc Excel Online”
↳ Câu lệnh trên sẽ điền giá trị “Hoc Excel Online” vào vùng A1:B5 và C2:D3
Range(“A1:B5,C2:D3”).value = “Hoc Excel Online”
↳ Kết quả của câu lệnh trên là 5, được ghi ra trong cửa sổ Immediate Debug.print Range(“E8”).Column
↳ Kết quả của câu lệnh trên là 8, được ghi ra trong cửa sổ Immediate Debug.print Range(“E8”).Row
↳ Khi làm việc với nhiều file Excel cùng 1 lúc, chúng ta cần chỉ ra rõ ràng địa chỉ vùng chúng ta đang cần làm việc. Trong câu code trên, ý nghĩa là: đặt giá trị của vùng A1:B5 của bảng tính có code name là Sheet1 trong file Excel chứa câu code trên là “Hoc Excel Online”
ThisWorkbook.Sheet1.Range(“A1:B5”).value = “Hoc Excel Online”
↳ Nếu chúng ta chỉ làm việc với 1 file Excel, thì chúng ta có thể bỏ ThisWorkbook đi, và thực hiện câu code như trên.
Sheet1.Range(“A1:B5”).value = “Hoc Excel Online”
Tham chiếu đến vùng trong Excel, ghi dữ liệu
Một số thuộc tính và phương thức của Range
Thuộc tính Column, Row
8. Làm việc với đối tượng Range
họcExcel.Online
select * from [EXCEL]
↳ Kết quả của câu lệnh trên là 5, được ghi ra trong cửa sổ Immediate
Đối với file xlsx, kết quả của câu lệnh trên là 16384 là số cột mà file Excel này hỗ trợ
Debug.print Range(“E8”).Column
↳
↳
Kết quả của câu lệnh trên là 8, được ghi ra trong cửa sổ Immediate
↳ Đối với file xlsx, kết quả của câu lệnh trên là 1048576 là số dòng mà file Excel này hỗ trợ
↳ Bắt đầu từ ô A100, di chuyển ngược lên phía trên đến ô có nội dung và chọn ô đó
Debug.print Range(“E8”).Row
Debug.print Columns.Count
Debug.print Rows.Count
Range(“A100”).End(xlUp).select
Một số thuộc tính và phương thức của Range
Thuộc tính Column, Row
Chú ý để không nhầm với Rows và Columns
Phương thức End và Select
25
Khoá học VBA cơ bản cho người mới bắt đầu Click link giảm giá 40%: http://bit.ly/2eEOWsZ
↳ Ghi ra cửa sổ Immediate dòng cuối cùng có chứa dữ liệu
↳ Ghi ra cửa sổ Immediate địa chỉ tuyệt đối của ô A4 là $A$4 Debug.print Range(“A4”).Address
↳ Điền công thức như hình minh hoạ vào ô A5 bằng code VBA Range(“A5”).Formula = “=SUM(A1:A4)"
Thuộc tính Address
Thuộc tính Formula
họcExcel.Online
select * from [EXCEL]
Sử dụng Range.Offset
Giả sử chúng ta đang lựa chọn ô F8
↳ Di chuyển 2 cột sang phải tính từ cột F. Kết quả là ô H8 được chọn Range(“F8”).Offset(,2).select
↳ Di chuyển 2 cột sang trái tính từ cột F. Kết quả là ô D8 được chọn Range(“F8”).Offset(,-2).select
↳ Di chuyển 2 dòng xuống dưới tính từ hàng số 8. Kết quả là ô F10 được chọn
Range(“F8”).Offset(2).select
↳ Di chuyển 2 dòng lên trên tính từ hàng số 8. Kết quả là ô F6 được chọn Range(“F8”).Offset(-2).select
↳ Di chuyển 2 dòng xuống dưới và 3 cột sang phải tính từ vị trí ô F8. Kết quả là ô i10 được chọn
Range(“F8”).Offset(2,3).select
27
GIẢM NGAY 30%
VBA CHO NGƯỜI MỚI BẮT ĐẦU Khoá học
http://bit.ly/2eEOWsZ
↳ Câu lệnh trên sẽ thay đổi kích thước của vùng đang được chọn là F8, với tham số (1,1) thì vùng chọn này sẽ được giữ nguyên là ô F8
Range(“F8”).Resize(1,1).select
↳ Câu lệnh trên sẽ thay đổi kích thước của vùng đang được chọn là F8, mở rộng vùng chọn kể từ F8 - 2 dòng và 3 cột, kết quả là vùng F8:H9 được chọn
Range(“F8”).Resize(2,3).select
họcExcel.Online
select * from [EXCEL]
Sử dụng Range.Copy
Sử dụng Range.PasteSpecial
↳ Câu lệnh trên sẽ copy vùng dữ liệu bao gồm cả định dạng và dữ liệu từ vùng A1:B5 đến vùng D1:E5, lưu ý, tuy dữ liệu được copy vào vùng D1:E5 nhưng chúng ta chỉ cần đưa ra nơi cần copy tới là vùng D1
Range(“A1:B5”).Copy Range(“D1”)
↳ 2 câu lệnh trên sẽ copy dữ liệu từ vùng A1:B5, và dán “đặc biệt” bắt đầu ở vùng A8, các kiểu dán dữ liệu có thể sử dụng là
Range(“A1:B5”).Copy
Range(“A8”).PasteSpecial <paste Type>
Dán tất cả dữ liệu
Dán tất cả trừ định dạng đường viền Dán và trộn định dạng có điều kiện Dán và sử dụng Source Theme Dán chiều rộng của cột
Dán cả ghi chú (comments) Dán định dạng
Dán công thức
Dán công thức và định dạng số Dán Data Validation
Dán giá trị (value)
Dán giá trị và định dạng số
29