Skip to content

Edupedia

  • Home
  • Excel Tips
  • VBA Tips

Edupedia

  • Home » 
  • Excel Tips » 
  • Active Cell Trong Excel VBA: Hướng Dẫn Chi Tiết Cách Sử Dụng Và Tối Ưu Hóa

Active Cell Trong Excel VBA: Hướng Dẫn Chi Tiết Cách Sử Dụng Và Tối Ưu Hóa

By Edupedia Tháng 2 3, 2026 0
Ô tính đang hoạt động có màu sáng hơn các ô còn lại trong vùng chọn
Table of Contents

Thời gian đọc ước tính: 12 phút

Những điểm chính

  • Định nghĩa chuẩn xác: Active Cell là ô hiện hành nhận dữ liệu nhập vào, khác biệt hoàn toàn với vùng chọn (Selection).
  • Thao tác cốt lõi: Cách kích hoạt, chọn, xóa và định dạng Active Cell bằng mã VBA.
  • Thuộc tính và Phương thức: Phân biệt rõ ràng giữa việc lấy thông tin (Properties) và thực hiện hành động (Methods) trên ô.
  • Kỹ thuật Offset: Sử dụng Active Cell làm mốc tọa độ để di chuyển và thao tác dữ liệu linh hoạt.
  • Tối ưu hóa mã: Cách gán biến cho Active Cell để code chạy ổn định hơn khi xử lý nhiều trang tính.

“Active Cell” (Ô hiện hành) là một khái niệm nền tảng nhưng thường bị hiểu sai trong Excel. Đối với người dùng thông thường, đây chỉ là nơi con trỏ chuột đang nhấp nháy. Tuy nhiên, khi bạn bắt đầu làm việc với VBA (Visual Basic for Applications), việc kiểm soát Active Cell trở thành yếu tố then chốt để viết nên những đoạn mã tự động hóa chính xác và hiệu quả.

Bài viết này sẽ hướng dẫn bạn từ những khái niệm cơ bản nhất đến các kỹ thuật xử lý Active Cell nâng cao trong lập trình VBA. Chúng ta sẽ cùng phân tích cách định danh, các thuộc tính quan trọng và những ví dụ mã lệnh thực tế áp dụng cho công việc hàng ngày.

Active Cell Trong Excel Là Gì?

Active Cell là ô đơn lẻ hiện đang được chọn và sẵn sàng nhận dữ liệu văn bản hoặc công thức từ bàn phím. Tại bất kỳ thời điểm nào trên một trang tính (Worksheet), chỉ có duy nhất một Active Cell, ngay cả khi bạn đang bôi đen một vùng dữ liệu lớn.

Ví dụ cụ thể: Nếu bạn nhấp chuột vào ô B5, ô này sẽ trở thành Active Cell. Mọi ký tự bạn gõ sẽ xuất hiện ngay tại B5.

Một sự nhầm lẫn phổ biến xảy ra khi người dùng chọn một phạm vi ô (Range). Giả sử bạn chọn vùng A1:B10. Mặc dù có tổng cộng 20 ô được chọn, nhưng chỉ có một ô trong số đó là Active Cell. Theo mặc định, đó thường là ô đầu tiên bạn nhấp vào khi bắt đầu kéo chuột chọn vùng.

Cách nhận diện Active Cell bằng mắt thường

Bạn có thể phân biệt Active Cell với các ô khác trong vùng chọn dựa vào màu sắc:

  1. Vùng được chọn (Selection): Thường được tô nền màu xám hoặc xanh nhạt (tùy giao diện).
  2. Ô hiện hành (Active Cell): Có màu nền trắng (hoặc màu gốc của ô), sáng hơn so với các ô còn lại trong vùng chọn.

Ô tính đang hoạt động có màu sáng hơn các ô còn lại trong vùng chọnÔ tính đang hoạt động có màu sáng hơn các ô còn lại trong vùng chọn

Ngoài ra, một cách chính xác hơn để xác định Active Cell là quan sát Name Box (hộp nằm ngay bên trái thanh công thức). Name Box luôn hiển thị địa chỉ tham chiếu của Active Cell hiện tại.

Ví dụ: Nếu bạn chọn vùng A1:C5 nhưng bắt đầu chọn từ A1, Name Box sẽ hiển thị “A1”. Nếu bạn nhấn phím Tab hoặc Enter, vùng chọn vẫn giữ nguyên nhưng Active Cell sẽ di chuyển sang ô kế tiếp, và Name Box sẽ cập nhật theo.

Địa chỉ của ô đang hoạt động hiển thị trong Name Box bên cạnh thanh công thứcĐịa chỉ của ô đang hoạt động hiển thị trong Name Box bên cạnh thanh công thức

Sử Dụng Active Cell Trong Excel VBA

Hiểu được bản chất của Active Cell trên bảng tính là bước đầu tiên. Tiếp theo, chúng ta sẽ đi sâu vào cách tương tác với đối tượng này thông qua ngôn ngữ lập trình VBA để tự động hóa các tác vụ.

Phân Biệt Thuộc Tính (Properties) Và Phương Thức (Methods)

Trong VBA, đối tượng ActiveCell cung cấp hai nhóm chức năng chính:

  • Properties (Thuộc tính): Dùng để lấy thông tin về ô (Ví dụ: Địa chỉ ô là gì? Màu nền là gì? Có chứa công thức không?).
  • Methods (Phương thức): Dùng để thực hiện hành động lên ô (Ví dụ: Xóa ô, kích hoạt ô, thêm bình luận).

Để xem danh sách đầy đủ các thuộc tính và phương thức này, bạn có thể thực hiện thao tác sau trong cửa sổ soạn thảo VBA (VBE):

  1. Mở một Module mới.
  2. Gõ từ khóa ActiveCell sau đó gõ dấu chấm ..
  3. Một danh sách xổ xuống (IntelliSense) sẽ hiện ra.

Trong danh sách này:

  • Biểu tượng màu xám (hình bàn tay cầm hồ sơ): Đại diện cho Thuộc tính. Ví dụ: Address (địa chỉ), Font (phông chữ), Value (giá trị).
  • Biểu tượng màu xanh lá (hình cục tẩy đang bay): Đại diện cho Phương thức. Ví dụ: Activate (kích hoạt), Clear (xóa), Select (chọn).

Việc nắm rõ sự khác biệt này giúp bạn tránh lỗi cú pháp khi viết code. Bạn không thể “thực hiện” một thuộc tính, và bạn không thể “gán giá trị” cho một phương thức hành động đơn thuần.

Cách Chọn Và Kích Hoạt Một Ô (Activate/Select)

Để biến một ô bất kỳ thành Active Cell thông qua VBA, bạn cần xác định ô đó và sử dụng lệnh kích hoạt. Có hai phương thức thường dùng là .Activate và .Select.

Ví dụ 1: Kích hoạt ô B5

Sub Change_ActiveCell()
    Range("B5").Activate
End Sub

Đoạn mã trên chỉ định rõ ô B5 và dùng phương thức Activate để đưa con trỏ về đó.

Ví dụ 2: Chọn ô B5

Sub Select_ActiveCell()
    Range("B5").Select
End Sub

Đối với một ô đơn lẻ, Activate và Select thường mang lại kết quả giống nhau. Tuy nhiên, sự khác biệt rõ rệt xuất hiện khi bạn làm việc với một vùng dữ liệu. Bạn có thể chọn (Select) một vùng rộng lớn từ A1 đến B10, nhưng sau đó chỉ định (Activate) ô A5 là ô hiện hành nằm trong vùng chọn đó.

Ví dụ 3: Chọn vùng và kích hoạt ô cụ thể

Sub Select_Range_Activate_Cell()
    ' Chọn vùng A1 đến B10
    Range("A1:B10").Select
    ' Đặt ô A5 làm ô hiện hành trong vùng chọn
    Range("A5").Activate
End Sub

Lưu ý: Bạn chỉ có thể kích hoạt một ô nếu ô đó nằm trong vùng đang được chọn hoặc trên trang tính đang hoạt động.

Xóa Dữ Liệu Trong Active Cell

Để làm sạch dữ liệu trong ô hiện hành, chúng ta sử dụng phương thức Clear. Lệnh này sẽ xóa toàn bộ nội dung, định dạng, và cả các chú thích (comments) gắn liền với ô đó.

Sub Clear_ActiveCell()
    Range("A5").Activate
    ActiveCell.Clear
End Sub

Nếu bạn chỉ muốn xóa nội dung văn bản mà giữ nguyên định dạng (như màu nền, viền), hãy sử dụng ActiveCell.ClearContents.

Thực tế, VBA cho phép bạn tác động lên ô mà không cần phải kích hoạt nó trước. Mã lệnh dưới đây thực hiện cùng chức năng nhưng gọn gàng và chạy nhanh hơn:

Sub Clear_CellB5_Direct()
    Range("A5").Clear
End Sub

Việc hạn chế sử dụng Activate hoặc Select khi không cần thiết là một thói quen tốt giúp tăng tốc độ xử lý của Macro.

Lấy Giá Trị Và Địa Chỉ Của Active Cell

Trong quá trình xử lý dữ liệu, bạn thường xuyên cần trích xuất thông tin từ ô hiện tại để phục vụ cho các bước tính toán tiếp theo.

Lấy giá trị (Value):
Đoạn mã sau hiển thị một hộp thoại chứa nội dung đang có trong Active Cell.

Sub Show_ActiveCell_Value()
    MsgBox ActiveCell.Value
End Sub

Lấy địa chỉ (Address):
Để biết chính xác vị trí của Active Cell (rất hữu ích khi gỡ lỗi code), bạn dùng thuộc tính Address.

Sub Show_ActiveCell_Address()
    MsgBox ActiveCell.Address
End Sub

Kết quả trả về thường ở dạng tham chiếu tuyệt đối, ví dụ: $A$5.

Hộp thoại thông báo hiển thị địa chỉ tuyệt đối của ô đang hoạt độngHộp thoại thông báo hiển thị địa chỉ tuyệt đối của ô đang hoạt động

Định Dạng Active Cell (Màu Sắc, Font Chữ)

Bạn có thể thay đổi giao diện của ô hiện hành ngay lập tức bằng VBA. Ví dụ dưới đây sẽ tô nền màu xanh dương và đổi màu chữ thành trắng cho Active Cell.

Sub Format_ActiveCell()
    ' Tô màu nền xanh dương (vbBlue là hằng số màu có sẵn)
    ActiveCell.Interior.Color = vbBlue

    ' Đổi màu font chữ sang trắng
    ActiveCell.Font.Color = vbWhite
End Sub

Ngoài các hằng số màu cơ bản như vbBlue, vbRed, vbGreen, bạn có thể sử dụng hàm RGB(Red, Green, Blue) để chỉ định màu sắc chính xác hơn. Ví dụ: ActiveCell.Interior.Color = RGB(255, 100, 50).

Sử Dụng Thuộc Tính Offset Để Di Chuyển

Offset là một trong những tính năng mạnh mẽ nhất khi kết hợp với Active Cell. Nó cho phép bạn tham chiếu đến một ô khác dựa trên vị trí tương đối so với ô hiện tại.

Cú pháp cơ bản: ActiveCell.Offset(số_hàng, số_cột)

  • số_hàng: Số dương để đi xuống, số âm để đi lên.
  • số_cột: Số dương để sang phải, số âm để sang trái.

Ví dụ 1: Nhập dữ liệu vào ô ngay bên dưới

Sub Offset_From_ActiveCell()
    Range("A1").Activate
    ' Di chuyển xuống 1 hàng, giữ nguyên cột (0)
    ActiveCell.Offset(1, 0).Value = "Test"
End Sub

Đoạn mã trên kích hoạt A1, sau đó điền chữ “Test” vào ô A2 (xuống 1 dòng).

Ví dụ 2: Vòng lặp điền số tự động
Kịch bản này rất thường gặp khi bạn muốn điền số thứ tự hoặc dữ liệu vào một cột danh sách.

Sub Loop_Offset_Example()
    Range("A1").Activate

    Dim i As Integer
    ' Lặp 10 lần để điền số từ 1 đến 10
    For i = 1 To 10
        ' Offset(i-1, 0) nghĩa là ô đầu tiên là chính nó (0), sau đó tăng dần
        ActiveCell.Offset(i - 1, 0).Value = i
    Next i
End Sub

Lưu ý: Offset(0,0) chính là Active Cell hiện tại.

Lấy Chỉ Số Hàng (Row) Và Cột (Column)

Đôi khi bạn cần biết Active Cell đang nằm ở dòng thứ mấy hoặc cột thứ mấy dưới dạng con số để dùng trong các vòng lặp Cells(row, col).

  • Lấy số hàng:
    MsgBox ActiveCell.Row
  • Lấy số cột:
    MsgBox ActiveCell.Column

    (Ví dụ: Nếu Active Cell là C5, kết quả trả về sẽ là 3).

Gán Active Cell Vào Một Biến (Variable)

Đây là kỹ thuật nâng cao giúp mã của bạn ổn định hơn. Khi macro chạy và chuyển đổi qua lại giữa các sheet hoặc workbook, ActiveCell sẽ liên tục thay đổi. Để “ghi nhớ” ô ban đầu, chúng ta gán nó vào một biến đối tượng.

Sub Assign_ActiveCell_To_Variable()
    Dim varCell As Range

    ' Lưu trữ Active Cell hiện tại vào biến varCell
    Set varCell = ActiveCell

    ' Dù bạn có chọn ô khác sau đó, varCell vẫn trỏ về ô ban đầu
    Range("C10").Select

    ' Hiển thị giá trị của ô ban đầu
    MsgBox varCell.Value
End Sub

Việc sử dụng biến giúp bạn thao tác chính xác với ô dữ liệu mục tiêu mà không lo bị nhầm lẫn khi người dùng hoặc mã lệnh vô tình thay đổi vùng chọn.

Chọn Vùng Dữ Liệu Bắt Đầu Từ Active Cell

Bạn có thể mở rộng vùng chọn từ ô hiện hành ra một phạm vi xác định. Kỹ thuật này hữu ích khi bạn muốn định dạng nhanh một bảng dữ liệu có kích thước cố định bắt đầu từ vị trí con trỏ chuột.

Sub Select_Expanded_Range()
    ' Chọn vùng từ Active Cell đến ô cách đó 10 hàng và 10 cột
    Range(ActiveCell, ActiveCell.Offset(10, 10)).Select
End Sub

Trong cấu trúc Range(Cell1, Cell2), VBA sẽ chọn toàn bộ hình chữ nhật được tạo bởi hai ô điểm mút này. Ở đây, điểm đầu là ActiveCell và điểm cuối là ô nằm cách đó 10 dòng, 10 cột.

Các Câu Hỏi Thường Gặp (FAQ)

1. Active Cell và Selection khác nhau như thế nào?

Selection (Vùng chọn) là tập hợp tất cả các ô bạn đang bôi đen. Active Cell chỉ là một ô duy nhất nằm trong vùng chọn đó, nơi con trỏ bàn phím đang hoạt động. Một Selection có thể chứa hàng nghìn ô, nhưng Active Cell luôn chỉ có một.

2. Làm sao để di chuyển Active Cell mà không mất vùng chọn?

Bạn có thể sử dụng phím Tab để di chuyển Active Cell sang phải hoặc Enter để di chuyển xuống dưới trong phạm vi vùng đang chọn. Trong VBA, bạn dùng lệnh Range("Cell_Address").Activate với ô nằm trong vùng chọn đó.

3. Tại sao code ActiveCell.Value bị lỗi?

Lỗi này thường xảy ra nếu không có Workbook hoặc Worksheet nào đang mở, hoặc Active Cell đang nằm trong chế độ chỉnh sửa (Edit mode) khi code chạy. Ngoài ra, hãy đảm bảo bạn đang thao tác đúng trên Sheet mong muốn.

4. Có nên sử dụng ActiveCell thường xuyên trong VBA không?

Trong các bài toán tự động hóa chuyên nghiệp, nên hạn chế dùng ActiveCell và Select. Thay vào đó, hãy tham chiếu trực tiếp đến địa chỉ ô (ví dụ: Sheets("Data").Range("A1")). Cách này giúp code chạy nhanh hơn và tránh lỗi nếu người dùng vô tình click chuột trong lúc macro đang chạy.

5. ActiveCell có hoạt động trên Sheet bị ẩn không?

Không. Bạn không thể Select hoặc Activate một ô trên trang tính đang bị ẩn (Hidden). Bạn phải bỏ ẩn (Unhide) trang tính đó trước, hoặc thao tác trực tiếp vào giá trị ô mà không cần chọn nó.

Nguồn Tham Khảo

Để tìm hiểu sâu hơn về lập trình VBA và các đối tượng trong Excel, bạn có thể tham khảo các tài liệu uy tín sau:

  1. Microsoft Learn: Tài liệu chính thức về Đối tượng Application.ActiveCell.
  2. Excel Easy: Hướng dẫn cơ bản về Range và Cells trong VBA.
  3. Automate Excel: Các ví dụ thực tế về Sử dụng VBA Offset.
  4. Cộng đồng GPE (Giải Pháp Excel): Diễn đàn thảo luận chuyên sâu về các tình huống xử lý Active Cell phức tạp tại Việt Nam.

Việc thành thạo Active Cell và các phương thức liên quan như Offset hay Range Object sẽ mở ra khả năng tùy biến vô hạn cho công việc xử lý dữ liệu của bạn. Hãy bắt đầu từ những đoạn mã đơn giản và áp dụng chúng vào các tác vụ lặp đi lặp lại hàng ngày để thấy rõ hiệu quả.

Share
facebookShare on FacebooktwitterShare on TwitterpinterestShare on Pinterest
linkedinShare on LinkedinvkShare on VkredditShare on ReddittumblrShare on TumblrviadeoShare on ViadeobufferShare on BufferpocketShare on PocketwhatsappShare on WhatsappviberShare on ViberemailShare on EmailskypeShare on SkypediggShare on DiggmyspaceShare on MyspacebloggerShare on Blogger YahooMailShare on Yahoo mailtelegramShare on TelegramMessengerShare on Facebook Messenger gmailShare on GmailamazonShare on AmazonSMSShare on SMS
Post navigation
Previous post

Hướng Dẫn Mở Khóa Sheet Excel Khi Quên Mật Khẩu: Thủ Thuật “Insider” Không Cần Phần Mềm

Edupedia

Edupedia

Related Posts

Categories Excel Tips Active Cell Trong Excel VBA: Hướng Dẫn Chi Tiết Cách Sử Dụng Và Tối Ưu Hóa

Hướng Dẫn Mở Khóa Sheet Excel Khi Quên Mật Khẩu: Thủ Thuật “Insider” Không Cần Phần Mềm

Categories Excel Tips Active Cell Trong Excel VBA: Hướng Dẫn Chi Tiết Cách Sử Dụng Và Tối Ưu Hóa

Hướng Dẫn Toàn Diện Về Sắp Xếp Dữ Liệu Trong Pivot Table Excel

Categories Excel Tips Active Cell Trong Excel VBA: Hướng Dẫn Chi Tiết Cách Sử Dụng Và Tối Ưu Hóa

3 Cách Viết Chữ Dọc Trong Excel Đơn Giản Và Hiệu Quả Nhất

Leave a Comment Hủy

Edupedia

Edupedia

Ô tính đang hoạt động có màu sáng hơn các ô còn lại trong vùng chọn

Active Cell Trong Excel VBA: Hướng Dẫn Chi Tiết Cách Sử Dụng Và Tối Ưu Hóa

Tháng 2 3, 2026
Tạo bản sao của tệp Excel bạn muốn mở khóa để đảm bảo an toàn dữ liệu

Hướng Dẫn Mở Khóa Sheet Excel Khi Quên Mật Khẩu: Thủ Thuật “Insider” Không Cần Phần Mềm

Tháng 2 3, 2026
Bảng dữ liệu Pivot Table mẫu hiển thị tên nhân viên và danh mục sản phẩm

Hướng Dẫn Toàn Diện Về Sắp Xếp Dữ Liệu Trong Pivot Table Excel

Tháng 2 3, 2026
Văn bản được viết theo chiều dọc trong Excel

3 Cách Viết Chữ Dọc Trong Excel Đơn Giản Và Hiệu Quả Nhất

Tháng 2 3, 2026
Các giá trị đầu vào cho mẫu lịch trình trả nợ vay

Hướng Dẫn Tạo Lịch Trả Nợ Vay Trong Excel: Tự Động Tính Lãi Và Gốc (Kèm File Mẫu)

Tháng 2 3, 2026
Copyright © 2026 Edupedia
Offcanvas
Offcanvas

  • Lost your password ?