Đối tượng Range tham chiếu đến 3 vùng

Liên hệ QC

yeuthamhangxom

Thành viên tiêu biểu
Tham gia
26/10/07
Bài viết
517
Được thích
419
Nghề nghiệp
Nhân viên văn phòng
Gửi các anh chị GPE.
Em được biết đối tượng Range tham chiếu đến 1 ô hay 1 vùng dữ liệu trên bảng tính. Nhưng nếu em muốn tham chiếu đến 3 vùng dữ liệu thì phải làm thế nào?
Ví dụ em muốn tham chiếu đối tượng Range đến ba vùng là từ cột [c:g] và cột [i:m]và cột [o:s] thì phải làm thế nào?
Mong các anh chị giúp đỡ.
Cám ơn các anh chị nhiều.
 
Gửi các anh chị GPE.
Em được biết đối tượng Range tham chiếu đến 1 ô hay 1 vùng dữ liệu trên bảng tính. Nhưng nếu em muốn tham chiếu đến 3 vùng dữ liệu thì phải làm thế nào?
Ví dụ em muốn tham chiếu đối tượng Range đến ba vùng là từ cột [c:g] và cột [i:m]và cột [o:s] thì phải làm thế nào?
Mong các anh chị giúp đỡ.
Cám ơn các anh chị nhiều.
Dùng phương thức Union nhé
Code:
PHP:
Dim Rng As Range
Set Rng = Union(Vùng 1, Vùng 2, Vùng 3....)
Trường hợp của bạn thì:
PHP:
Dim Rng As Range
Set Rng = Union([c:g], [i:m], [o:s])
 
Upvote 0
Dùng phương thức Union nhé
Code:
PHP:
Dim Rng As Range
Set Rng = Union(Vùng 1, Vùng 2, Vùng 3....)
Trường hợp của bạn thì:
PHP:
Dim Rng As Range
Set Rng = Union([c:g], [i:m], [o:s])
Cám ơm thầy em vẫn chưa làm được.
Chẳng hạn trong đoạn code sau
Sub RngA()
Call LockRng(Sheet2.[c:g])
End Sub

Em muốn thêm hai vùng [i:m] và [o:s] vào thì làm như thế nào?
Mong thầy giúp em lần nữa em chưa biết nhiều về VBA lắm.
Cám ơn thầy rất nhiều.
 
Upvote 0
Mình nghĩ đâu cần đến Union nhỉ. Bạn xem code minh họa sau :
PHP:
Sub LockRange(Rng)
Rng.Locked = True
End Sub

Sub RngA()
Call LockRange(Sheet2.[C:G,I:M,O:S])
End Sub
 
Upvote 0
Mình nghĩ đâu cần đến Union nhỉ. Bạn xem code minh họa sau :
PHP:
Sub LockRange(Rng)
Rng.Locked = True
End Sub

Sub RngA()
Call LockRange(Sheet2.[C:G,I:M,O:S])
End Sub
Ồ đúng rồi mình làm được rồi cám ơn bạn và thầy ndu nhiều lắm.
Chúc cuối tuần vui vẻ.
 
Upvote 0
Quên cho mình hỏi thêm câu này nữa.
Mình dùng lệnh Offset để lấy dữ liệu từ vùng Range vừa đặt thì thứ tự các cột trong vùng này có cần cách ra hay không nay vùng này gộp liền nhau. Ví dụ mình muốn lấy giá trị ở cột J ra thì trong lệnh Offset thứ tự cột sẽ phải là bao nhiêu trong vùng Range vừa tạo?
Mong thầy và các bạn trả lời giúp.
Thân.
 
Upvote 0
Quên cho mình hỏi thêm câu này nữa.
Mình dùng lệnh Offset để lấy dữ liệu từ vùng Range vừa đặt thì thứ tự các cột trong vùng này có cần cách ra hay không nay vùng này gộp liền nhau. Ví dụ mình muốn lấy giá trị ở cột J ra thì trong lệnh Offset thứ tự cột sẽ phải là bao nhiêu trong vùng Range vừa tạo?
Mong thầy và các bạn trả lời giúp.
Thân.
Bạn xem code sau :
PHP:
Sheet2.[C:G,I:M,O:S].Areas(2).Offset(, 1).Resize(, 1) '=> Sheet2.[J:J]
 
Upvote 0
Bạn xem code sau :
PHP:
Sheet2.[C:G,I:M,O:S].Areas(2).Offset(, 1).Resize(, 1) '=> Sheet2.[J:J]
Mong bạn giải thích giúp mình mã code trên. Theo mình hiểu thì Areas(2) là lấy 2 vùng?
Offset(, 1) là dịch sang 1 cột còn Resize(, 1) là chỉ lấy 1 cột?
Mình vẫn chưa hiểu làm sao để lấy cột J:J là bạn giải thích trình tự để lấy cột J;J ra giúp mình với.
Cám ơn bạn.
 
Upvote 0
PHP:
Sheet2.[C:G,I:M,O:S].Areas(2)                            => Sheet2.[I:M]
Sheet2.[C:G,I:M,O:S].Areas(2).Offset(, 1)                => Sheet2.[J:N]
Sheet2.[C:G,I:M,O:S].Areas(2).Offset(, 1).Resize(, 1)    => Sheet2.[J:J]
 
Upvote 0
Web KT

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

Back
Top Bottom