Hướng dẫn này sẽ giải thích cách sử dụng Khu vực hiện tại trong VBA.
Các Hiện tại thuộc tính trong VBA là một cách để chọn tất cả các ô được chứa trong một Phạm vi mà bạn có thể muốn làm việc với. Miễn là các ô trong phạm vi đều liên tiếp hoặc 'chạm' vào nhau, Hiện tại sẽ chọn mọi ô trong vùng.
Cú pháp CurrentRegion
Cú pháp rất đơn giản:
1 | Phạm vi ("E11"). CurrentRegion.Select |
nơi bạn sẽ chỉ định ô có vùng hiện tại bạn muốn chọn và sau đó sử dụng CurrentRegion.Select để chọn Phạm vi ô.
Có được khu vực hiện tại
Hãy xem xét bảng tính sau.
thủ tục con sau sẽ chọn tất cả các ô trong cơ sở dữ liệu
1234567 | Sub FindCurrentRegion ()Dim rng As Range'đặt phạm vi là Ô E11Đặt rng = Range ("E11")'chọn khu vực hiện tạirng.CurrentRegion.SelectKết thúc Sub |
Nếu chúng tôi chạy quy trình, tất cả các ô trong Hiện tại của ô E11 sẽ được chọn.
Nếu chúng ta xóa nội dung của các ô liền kề và chạy lại quy trình, vùng sau sẽ được chọn làm vùng hiện tại.
Tuy nhiên, nếu chúng tôi xóa nhiều dữ liệu hơn nữa, chúng tôi có thể kết thúc với ví dụ bên dưới cho Vùng hiện tại của ô E11.
Đưa thông tin ack vào D13, chúng tôi kết thúc với những điều sau:
Các Hiện tại do đó trả về một phạm vi đối tượng được xác định bởi sự kết hợp nhỏ nhất của các cột và hàng bị chiếm dụng bao quanh Phạm vi mà bạn đã cung cấp.
Đếm các hàng và cột trong khu vực hiện tại
Chúng ta có thể sử dụng Hiện tại để đếm các hàng và cột.
12345678910111213 | Sub FindCurrentRegion ()Dim rng As RangeDim iRw As IntegerDim iCol As Integer'đặt phạm viĐặt rng = Range ("E11")'đếm các hàngiRw = rng.CurrentRegion.Rows.Count'đếm các cộtiCol = rng.CurrentRegion.Columns.Count'hiển thị kết quả trong một hộp thông báoMsgBox ("Chúng tôi có" & iRw & "hàng và" & iCol & "cột trong khu vực hiện tại của chúng tôi")Kết thúc Sub |
Nếu chúng tôi chạy thủ tục, hộp thông báo sau sẽ xuất hiện.
Xóa khu vực hiện tại
Chúng tôi cũng có thể sử dụng thuộc tính vùng hiện tại để xóa phạm vi ô.
123456 | Sub ClearCurrentRegion ()Dim rng As Range'đặt phạm viĐặt rng = Range ("E11")rng.CurrentRegion.ClearKết thúc Sub |
Gán khu vực hiện tại cho một biến
Chúng ta cũng có thể gán toàn bộ Vùng hiện tại cho một biến phạm vi, sau đó sử dụng biến phạm vi đó để thao tác các ô - có thể là định dạng ô, sắp xếp ô, v.v.
12345678910 | Sub AssignCurrentRegionToVariable ()Dim rng As Range'đặt phạm vi là vùng hiện tại của E11Đặt rng = Range ("E11"). CurrentRegion'tô màu nền và văn bảnrng.Interior.Pattern = xlSolidrng.Interior.Color = 65535rng.Font.Bold = Đúngrng.Font.Color = -16776961Kết thúc Sub |
Nếu chúng ta chạy quy trình trên, chúng ta sẽ kết thúc với một trang tính như hình dưới đây!
Bắt đầu và kết thúc ô trong khu vực hiện tại
Với mã phức tạp hơn một chút, chúng ta có thể lấy ô đầu tiên và ô cuối cùng trong Vùng hiện tại.
123456789101112131415161718 | Sub GetStartAndEndCells ()Dim rng As RangeDim iRw As IntegerDim iCol As IntegerDim iColStart, iColEnd, iRwStart, iRwEnd As String'đặt biến phạm vi thành vùng hiện tại của E11Đặt rng = Range ("E11"). CurrentRegion'đặt cột bắt đầu cho phạm viiColStart = rng.Column'lấy cột kết thúc cho phạm viiColEnd = iColStart + (rng.Columns.Count - 1)'lấy hàng bắt đầu cho phạm viiRwStart = rng.Row'lấy hàng cuối cho phạm viiRwEnd = iRwStart + (rng.Rows.Count - 1)'hiển thị địa chỉ của các hàng và cột bắt đầu và kết thúc trong một hộp thông báoMsgBox ("Phạm vi bắt đầu tại" & Cells (iRwStart, iColStart) .Address & "và kết thúc tại" & Cells (iRwEnd, iColEnd) .Address)Kết thúc Sub |
Khi chúng ta chạy đoạn mã trên, hộp thông báo sau sẽ xuất hiện