Tin tức mới

    Đăng ký nhận báo giá 2026

    VBA variant type variable

    1. Variant là gì

    Variant là kiểu dữ liệu “đa năng” — nó có thể chứa bất kỳ kiểu nào:
    Số
    Chuỗi
    Ngày
    Object
    Thậm chí cả Empty, Null, Error

    👉 Vì vậy nó rất tiện… nhưng cũng rất nguy hiểm nếu dùng bừa.

    2. Khi nào NÊN dùng Variant

    1. Làm việc với Range

    Range.Value trả về mảng → phải dùng Variant

    
    Dim data As Variant
    data = Range("A1:C10").Value
    

    2. Khi không biết trước kiểu dữ liệu

    
    Dim inputValue As Variant
    inputValue = InputBox("Nhập gì cũng được")
    

    3. Duyệt mảng / collection

    
    Dim item As Variant
    For Each item In Array(1, 2, 3)
    

    3. Không nên lạm dụng Variant

    1. Tốn bộ nhớ hơn

    Variant dùng nhiều bộ nhớ hơn (16 bytes trở lên)
    Với dữ liệu lớn (loop hàng nghìn dòng) → chậm thấy rõ

    
    Dim a As Integer   ' nhẹ
    Dim b As Variant   ' nặng hơn nhiều
    

    2. Giảm hiệu năng (performance)

    
    Dim i As Variant
    For i = 1 To 100000
    

    👉 VBA phải:
    Kiểm tra kiểu dữ liệu liên tục
    Ép kiểu ngầm (type conversion)
    → Chậm hơn so với:

    
    Dim i As Long
    

    3. Dễ gây lỗi khó debug

    
    Dim x As Variant
    x = "123"
    
    Debug.Print x + 1   ' vẫn chạy (do VBA tự convert)
    

    4. Mất kiểm soát kiểu dữ liệu

    
    Dim value As Variant
    
    value = 100
    value = "hello"
    value = Now
    

    👉 Một biến mà:

    Lúc là số
    Lúc là string
    Lúc là date

    → Code trở nên khó hiểu, khó bảo trì

    4. Best Practice

    Luôn ưu tiên kiểu cụ thể

    Ví dụ tham khảo:

    Trường hợp Nên dùng
    Số đếm Long
    Tiền Double
    Text String
    True/False Boolean

    Chỉ dùng Variant khi cần thiết

    👉 Quy tắc đơn giản:

    
    Nếu bạn biết kiểu dữ liệu → KHÔNG dùng Variant
    

    Luôn bật Option Explicit

    
    Option Explicit
    

    👉 Giúp tránh:

    Biến bị ngầm thành Variant
    Lỗi typo

    Yêu cầu tư vấn

      Tư vấn sản phẩm phù hợp

      Yêu cầu báo giá

      Yêu cầu tư vấn kỹ thuật

      Leave a Reply

      Your email address will not be published. Required fields are marked *

      Gọi ngay 24/7 Zalo Messenger Support
      Gọi ĐT tư vấn ngay Chat ngay qua Messenger Chat ngay qua Zalo
      Yêu cầu tư vấn

        Tư vấn sản phẩm phù hợp

        Yêu cầu báo giá

        Yêu cầu tư vấn kỹ thuật