VBA đôi | Làm thế nào để khai báo kiểu dữ liệu kép trong VBA?

Kiểu dữ liệu kép VBA trong Excel

VBA Double là một loại kiểu dữ liệu mà chúng tôi gán để khai báo các biến, là phiên bản cải tiến hoặc dài hơn của biến kiểu dữ liệu “Đơn” và thường được sử dụng để lưu trữ các chữ số thập phân dài hơn.

Kiểu dữ liệu VBA Integer luôn chuyển đổi giá trị thập phân thành giá trị nguyên gần nhất, kiểu dữ liệu đơn lẻ có thể hiển thị tối đa hai chữ số của vị trí thập phân. Mặt khác, kiểu dữ liệu “Double” có thể lưu trữ các giá trị từ -1.79769313486231E308 đến -4.94065645841247E324 cho các giá trị âm và cho các số dương, nó có thể lưu trữ các giá trị từ 4.94065645841247E-324 đến 1.79769313486232E308 .

Quan trọng hơn, nó tiêu tốn 8 byte bộ nhớ.

Ví dụ để sử dụng Kiểu dữ liệu đôi VBA

Bạn có thể tải xuống Mẫu VBA Double Excel này tại đây - Mẫu VBA Double Excel

Ví dụ 1

Trước khi chúng ta xem ví dụ về kiểu dữ liệu “Đôi”, hãy xem các mã ví dụ của kiểu dữ liệu “Số nguyên” và “Đơn” trong VBA. Nhìn vào mã VBA bên dưới.

Mã:

 Sub Integer_Ex () Dim k As Integer k = 2.569999947164 MsgBox k End Sub 

Tôi đã khai báo biến “k” là Số nguyên và đối với biến này, tôi đã gán giá trị là 2,569999947164.

Hãy để chúng tôi chạy mã này theo cách thủ công hoặc sử dụng phím tắt F5 của excel, để xem giá trị cuối cùng trong hộp thông báo trong VBA.

Kết quả hiển thị là 3 thay vì số được cung cấp là 2.569999947164. Lý do là vì VBA đã chuyển đổi số thành giá trị số nguyên gần nhất tức là 3.

Khi giá trị thập phân lớn hơn 0,5 thì nó sẽ chuyển đổi thành giá trị số nguyên tiếp theo và khi giá trị thập phân nhỏ hơn 0,51 thì sẽ chuyển đổi thành giá trị nguyên dưới đây.

Bây giờ tôi sẽ thay đổi kiểu dữ liệu từ Integer thành Single.

Mã:

 Sub Integer_Ex () Dim k As Single k = 2.569999947164 MsgBox k End Sub 

Chạy mã thông qua phím tắt F5 và xem số chúng ta nhận được lần này.

Lần này chúng tôi nhận được kết quả là 2,57, vì vậy lần này chúng tôi có hai chữ số thập phân. Giá trị ban đầu mà chúng tôi đã chỉ định là 2,569999947164, vì vậy trong trường hợp này, giá trị thập phân thứ ba là 9, vì vậy vì giá trị này lớn hơn 5 nên nó đã chuyển đổi giá trị thập phân ở vị trí thứ hai 6 thành 7.

Bây giờ thay đổi kiểu dữ liệu từ Đơn thành Đôi.

Mã:

 Sub Integer_Ex () Dim k As Double k = 2.569999947164 MsgBox k End Sub 

Bây giờ hãy chạy mã theo cách thủ công và xem có bao nhiêu chữ số chúng tôi nhận được trong kết quả hộp thông báo.

Lần này có tất cả các giá trị thập phân. Chúng tôi có thể cung cấp tối đa 14 chữ số của vị trí thập phân trong kiểu dữ liệu Double.

Nếu bạn cung cấp bất kỳ giá trị nào lớn hơn 14 vị trí thập phân sẽ được chuyển đổi thành giá trị gần nhất. Để có một ví dụ, hãy nhìn vào hình ảnh bên dưới.

Tôi đã nhập 15 chữ số thập phân thay vì 14, nếu tôi nhấn phím enter, nó sẽ chỉ trở lại 14 chữ số.

Thay vì 59 (hai chữ số cuối), chúng ta nhận được 6 tức là vì chữ số cuối cùng là 9 lớn hơn 5 chữ số trước đó 5 được chuyển thành giá trị số nguyên tiếp theo tức là 6

Ví dụ số 2

Bây giờ tôi sẽ chỉ cách làm việc với tham chiếu ô trong một trang tính. Dưới đây là những con số tôi đã nhập vào trang tính.

Hãy để chúng tôi bắt đầu ghi lại các giá trị tương tự tiếp theo bằng cách sử dụng kiểu dữ liệu INTEGER , kiểu dữ liệu SINGLE và kiểu DOUBLE .

Dưới đây là mã để giữ lại các giá trị từ cột A đến B bằng cách sử dụng kiểu dữ liệu INTEGER.

Mã:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Integer For k = 1 to 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Hãy chạy mã thông qua phím tắt F5, để xem những giá trị nào chúng ta nhận được trong cột B.

Khi chúng ta đã sử dụng Integer làm kiểu dữ liệu, chúng ta nhận được tất cả các số nguyên, tức là không có số thập phân.

Bây giờ tôi sẽ chỉ thay đổi kiểu dữ liệu vba của một biến từ số nguyên thành Đơn.

Mã:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Single For k = 1 to 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Đoạn mã này sẽ cho kết quả bên dưới.

Lần này chúng tôi chỉ có hai chữ số thập phân.

Bây giờ thay đổi kiểu dữ liệu từ đơn thành kép.

Mã:

 Sub Double_Ex () Dim k As Integer Dim CellValue As Double For k = 1 to 6 CellValue = Cells (k, 1) .Value Cells (k, 2) .Value = CellValue Next k End Sub 

Điều này sẽ trả về kết quả bên dưới.

Chúng tôi có các giá trị chính xác từ cột A.

Những điều cần ghi nhớ

  • Double là một kiểu dữ liệu cải tiến của kiểu dữ liệu Đơn.
  • Nó có thể chứa tới 14 chữ số thập phân.
  • Nó tiêu tốn 8 byte bộ nhớ hệ thống.

$config[zx-auto] not found$config[zx-overlay] not found