VBA Long (Ví dụ) | Hướng dẫn từng bước về kiểu dữ liệu dài trong Excel VBA
Kiểu dữ liệu dài trong VBA là gì?
Long là một kiểu dữ liệu trong VBA được sử dụng để lưu trữ các giá trị số, chúng ta biết rằng số nguyên cũng chứa các giá trị số nhưng Long khác với số nguyên vì phạm vi lưu trữ dữ liệu rất lớn trong trường hợp kiểu dữ liệu dài cũng bằng long. kiểu dữ liệu chúng ta cũng có thể giữ các giá trị thập phân, đây là kiểu dữ liệu có sẵn.
“Dài” như cái tên đã nói, nó phải chứa đựng giá trị của một thứ gì đó lớn lao. “Dài” là kiểu dữ liệu số trong VBA Excel.
Kiểu dữ liệu dài trong Excel VBA có thể chứa các giá trị từ 0 đến 2, 147, 483, 647 đối với số dương và đối với số âm, nó có thể chứa từ 0 đến -2, 147, 483, 648.
VBA Kiểu dữ liệu dài yêu cầu 4 byte bộ nhớ lưu trữ của máy tính của bạn, đây là bộ nhớ biến kiểu dữ liệu số nguyên kép (2 byte) và một nửa bộ nhớ biến kiểu dữ liệu kép (8 byte)
Tôi chưa bao giờ thấy trường hợp nào mà tôi muốn sử dụng đầy đủ giới hạn của kiểu dữ liệu VBA Long trong sự nghiệp ngắn ngủi của mình. Nhưng tôi sẽ chỉ cho bạn một số ví dụ để bạn hiểu rõ hơn.
Ví dụ về kiểu dữ liệu dài VBA
Dưới đây là các ví dụ về kiểu dữ liệu VBA dài trong excel.
Bạn có thể tải xuống Mẫu Excel kiểu dữ liệu dài VBA này tại đây - Mẫu Excel kiểu dữ liệu dài VBA
Ví dụ dài VBA # 1
Ngay sau khi bạn khai báo kiểu dữ liệu biến là “Dài”, bạn có thể gán các giá trị từ -2, 147, 483, 648 đến 2, 147, 483, 648.
Ví dụ, khai báo biến là kiểu dữ liệu dài.
Mã:
Sub Long_Example1 () Dim k As Long End Sub
Hãy gán giá trị dưới dạng tổng số hàng của trang tính.
Để nhận tổng số hàng trong bảng tính excel mã là “Hàng. Đếm"
Mã:
Sub Long_Example1 () Dim k As Long k = Rows.Count End Sub
Bây giờ hiển thị giá trị trong hộp thông báo.
Mã:
Sub Long_Example1 () Dim k As Long k = Rows.Count MsgBox k End Sub
Chạy mã này và xem tổng số hàng trong trang tính là bao nhiêu.
Nó cho biết chúng ta có hơn 1 triệu hàng trong trang tính.
Bây giờ để hiểu rõ hơn, tôi sẽ thay đổi kiểu dữ liệu từ LONG thành INTEGER.
Mã:
Sub Long_Example1 () Dim k As Integer k = Rows.Count MsgBox k End Sub
Nếu tôi chạy mã VBA, tôi sẽ nhận được thông báo lỗi là "Tràn".
Lý do tại sao chúng tôi gặp lỗi này trong VBA vì kiểu dữ liệu "Số nguyên" chỉ có thể giữ các giá trị từ -31768 đến 32767. Trong trường hợp này “Hàng. Count ”sẽ trả về số lớn hơn giới hạn của biến“ integer ”.
Việc gán giá trị trên 1 triệu cho biến chỉ có thể chứa 32767 gây ra lỗi tràn ở đây.
Ví dụ dài VBA # 2
Tìm hàng cuối cùng bằng cách sử dụng biến dài
Tìm hàng được sử dụng cuối cùng của trang tính là điều quan trọng nhất của quá trình mã hóa. Để tìm hàng được sử dụng cuối cùng của trang tính, yêu cầu phải khai báo biến. Trong khi việc khai báo biến và gán một kiểu dữ liệu đòi hỏi một số hiểu biết chung.
Giả sử bạn có dữ liệu kết thúc ở 25000 hàng như thể hiện trong hình ảnh bên dưới.
Bây giờ tôi biết số hàng được sử dụng cuối cùng là 25000, đối với điều này, chúng tôi không cần kiểu dữ liệu “LONG” vì kiểu dữ liệu “INTEGER” có thể cung cấp cho tôi hàng cuối cùng.
Nhìn vào đoạn mã dưới đây để biết thông tin của bạn.
Mã:
Sub Long_Example1 () Dim k As Integer k = Cells (Rows.Count, 1) .End (xlUp) .Row MsgBox k End Sub
Nếu tôi chạy mã này, tôi sẽ nhận được số hàng được sử dụng cuối cùng của trang tính mà tôi đang làm việc vào lúc này.
Là một lập trình viên, điều quan trọng là phải biết kích thước dữ liệu bạn sẽ có trong tương lai. Bởi vì hiện tại dữ liệu có thể kết thúc ở hàng thứ 25000 nhưng nếu dữ liệu tăng vượt quá giới hạn "Số nguyên" tức là 32767, nó sẽ gây ra lỗi tràn.
Ví dụ: tôi sẽ tăng dữ liệu lên hàng thứ 32768.
Bây giờ nếu tôi chạy lại cùng một mã, tôi sẽ không nhận được giá trị thay vì tôi sẽ gặp lỗi như bên dưới.
Hãy nhớ rằng tôi đã tăng giới hạn chỉ 1 vượt quá giới hạn của giá trị "Số nguyên", vì vậy tôi gặp lỗi Tràn.
Vì vậy, điều quan trọng là phải biết kích thước dữ liệu của bạn trước khi bạn chỉ định kiểu dữ liệu cho biến. Luôn luôn là một lựa chọn tốt hơn để khai báo biến là “LONG” mà không cần nghĩ đến kích thước dữ liệu của bạn trong tương lai.
Các lựa chọn thay thế cho Biến dài VBA trong Excel
Bạn hẳn đã nghĩ về điều gì xảy ra nếu chúng ta muốn giữ giá trị nhiều hơn giới hạn của một biến dài. Đối với điều này, chúng tôi cần sử dụng các kiểu dữ liệu khác nhau, tức là VBA “Chuỗi” hoặc “Biến thể”
Hãy nhớ thời điểm nó vượt qua số 2147483647, chúng ta sẽ gặp lỗi tràn trong VBA với kiểu dữ liệu LONG. Để lưu trữ nhiều hơn số này, chúng tôi cần sử dụng kiểu dữ liệu "Chuỗi" hoặc "Biến thể".
Đối với chuỗi
Mã:
Sub Long_Example2 () Dim k As String k = 2147483648 MsgBox k End Sub
Đối với biến thể
Mã:
Sub Long_Example2 () Dim k As Variant k = 2147483648 MsgBox k End Sub
Khi chúng tôi chạy các mã trên, nó sẽ hiển thị số đã đề cập.