Khai báo biến số thập phân trong vba là gì
Trong mô hình dữ liệu, thì mỗi cột, mỗi ô đều có một kiểu dữ liệu như: số nguyên, số thập phân, văn bản, tiền tệ, ngày và giờ, ... Show
Kiểu dữ liệu cũng xác định được loại thao tác bạn có thể thực hiện trên ô/cột, và cần bao nhiêu bộ nhớ để lưu trữ nó. Các kiểu dữ liệu thường dùng trong lập trình VBA Excel1. Kiểu dữ liệu BooleanCác biến được khai báo theo kiểu Boolean được lưu trữ dưới dạng số 16 bit (2 byte), nhưng chỉ trả về dưới dạng True hoặc False. Có thể sử dụng True hoặc False để gán cho một trong hai trạng thái của các biến kiểu Boolean. Khai báo: Dim bien As Boolean Function () As Boolean 2. Kiểu dữ liệu số - ByteBiến Byte được lưu trữ dưới dạng số đơn, 8 bit (1 byte) khác nhau, có giá trị từ 0 đến 255. Khai báo: Dim bien As Byte Function () As Byte 3. Kiểu dữ liệu tiền tệ - CurrencyBiến Currency được lưu trữ dưới dạng số 64 bit (8 byte) ở định dạng số nguyên, được chia theo tỷ lệ 10,000 để cung cấp số cố dịnh với 15 chữ số bên trái dấu thập phân và 4 chữ số bên phải. Các biến kiểu currency nằm trong giới hạn từ -922,337,203,685,477.5808 tới 922,337,203,685,477.5807 Khai báo: Dim bien As Currency 4. Kiểu dữ liệu ngày tháng - DateBiến Date được lưu trữ dưới dạng số dấu phẩy động IEEE 64 bit (8 byte). Các biến được giới hạn từ ngày 1 tháng 1 đến 31 tháng 12 năm 9999 và thời gian từ 0:00:00 đến 23:59:59. Khai báo: Dim iDate As Date Các định dạng ngày tháng Constant Giá trị Miêu tả vbGeneralDate 0 Hiển thị ngày và / hoặc thời gian. Nếu không có phần phân đoạn, chỉ hiển thị một ngày. Nếu không có phần nguyên, chỉ hiển thị thời gian. Ngày và giờ hiển thị được xác định bởi system settings trên máy tính của bạn. vbLongDate 1 Hiển thị ngày bằng định dạng ngày dài được chỉ định trong regional settings của máy tính. vbShortDate 2 Hiển thị ngày bằng định dạng ngày ngắn được chỉ định trong regional settings của máy tính. vbLongTime 3 Hiển thị thời gian bằng định dạng thời gian dài được chỉ định trong regional settings của máy tính. vbShortTime 4 Hiển thị thời gian bằng định dạng thời gian ngắn được chỉ định trong regional settings của máy tính. Đối số firstdayofweek Constant Giá trị Miêu tả vbUseSystem 0 Sử dụng cài đặt API NLS. vbSunday 1 Chủ nhật (mặc định) vbMonday 2 Thứ hai vbTuesday 3 Thứ ba vbWednesday 4 Thứ tư vbThursday 5 Thứ năm vbFriday 6 Thứ sáu vbSaturday 7 Thứ bảy Đối số firstdayofyear Constant Giá trị Miêu tả vbUseSystemDayOfWeek 0 Sử dụng ngày trong tuần được chỉ định trong cài đặt hệ thống của bạn cho ngày đầu tiên của tuần. vbFirstJan1 1 Bắt đầu với tuần trong đó ngày 1 tháng 1 xảy ra (mặc định). vbFirstFourDays 2 Bắt đầu với tuần đầu tiên có ít nhất bốn ngày trong năm mới. vbFirstFullWeek 3 Bắt đầu với tuần đầy đủ đầu tiên của năm. 5. Kiểu dữ liệu số nguyên - IntegerBiến Integer được lưu trữ dưới dạng số nguyên 32 bit (4 byte). Các biến có giá trị từ -2,147,483,648 đến 2,147,483,647. Khai báo: Dim k as Integer 6. Kiểu dữ liệu số nguyên - LongBiến Long được lưu trữ dưới dạng số nguyên 64 bit (8 byte). Các biến có giá trị từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807 . Bài viết này mô tả cách sử dụng biến số Microsoft Excel thủ tục con trong Microsoft Visual Basic for Applications. Xem thêm thông tinCác biến trong một thủ tục conMột tính năng mạnh mẽ của ngôn ngữ lập trình là khả năng lưu trữ thông tin gì đó trong một biến để có thể sử dụng nội dung của biến hoặc có thể được thay đổi sau đó trong quy trình. Tài liệu này thảo luận về việc sử dụng các biến số sau đây trong Visual Basic:
Khai báo biến trong macroCách đơn giản nhất để khai báo biến trong macro là dùng câu lệnh Dim. Dòng sau đây khai báo hai biến số, là số nguyên: Dim x As Integer, y As Integer Với x và y được xác định là số nguyên, bạn đang yêu cầu Visual Basic dành đủ bộ nhớ cho biến số nguyên (2 byte cho mỗi số x và y) và thông tin được lưu trữ trong hoặc x hoặc y là một số nguyên trong khoảng từ -32768 đến 32767. LƯU Ý: Nếu bạn khai báo nhiều biến bằng cách dùng một câu lệnh Dim duy nhất, bạn phải xác định kiểu dữ liệu cho mỗi biến. Nếu bạn không xác định kiểu dữ liệu cho mỗi biến, như trong mã Visual Basic sau, chỉ có biến y được thiết lập làm biến số nguyên. Biến x sẽ là một loại biến thể: Dim x, y As Integer Để biết thêm thông tin, hãy xem mục Kiểu dữ liệu biến thể dưới đây. Để thực hiện kiểm tra biến số, hãy làm theo các bước sau:
Bạn sẽ gặp lỗi thời gian chạy vì "lỗi" không phải là số nguyên và bạn đang tìm cách gán giá trị chuỗi này cho biến số nguyên x. Tóm tắt kiểu dữ liệuĐây là các kiểu dữ liệu biến thường gặp: Loại dữ liệu biếnNếu bạn không xác định kiểu dữ liệu khi khai báo biến hoặc bạn không khai báo biến số, thì Visual Basic sẽ tự động xác định kiểu dữ liệu biến cho biến số này. Sau đây là những ưu điểm của biến số được khai báo là kiểu dữ liệu này:
Nhược điểm là biến số biến thể yêu cầu ít nhất 16 byte bộ nhớ. 16 byte bộ nhớ có thể đáng kể trong các thủ tục lớn hoặc trong mô-đun phức tạp. Để xem cách hoạt động của macro Variable_Test, hãy làm theo các bước sau: Thay đổi mã trong macro Variable_Test macro thành:
Chạy macro Variable_Test trang. Bạn sẽ không nhận được lỗi vì bạn có thể gán bất cứ giá trị nào cho các biến biến thể x và y. LƯU Ý: Bạn cũng có thể bỏ qua dòng sau đây và macro sẽ vẫn hoạt động như các biến x và y được coi là kiểu dữ liệu Variant: Dim x, y Phạm vi biến sốKhi bạn khai báo biến số, các macro khác trong cùng mô-đun hoặc trong các dự án khác có thể nhìn thấy hoặc không nhìn thấy biến đó. Sự sẵn sàng của biến số trong mô-đun được gọi là phạm vi. Ba loại phạm vi là mức thủ tục, mức mô-đun riêng và mức mô-đun công cộng. Phạm vi này phụ thuộc vào cách thức và vị trí bạn khai báo biến số hoặc biến số của mình. Phạm vi mức thủ tụcBiến số với phạm vi mức thủ tục không nhìn thấy bên ngoài thủ tục ở nơi nó được khai báo. Nếu bạn đặt giá trị của biến số có phạm vi mức thủ tục, thì các macro khác sẽ không nhìn thấy nội dung của biến đó. Để xác nhận rằng không nhìn thấy biến trong phạm vi mức thủ tục bên ngoài thủ tục khai báo, hãy làm theo các bước sau:
Macro2 không hiển thị giá trị cho biến x vì biến x cục bộ trong Macro1. Phạm vi mức mô-đun công cộng và riêng tưBạn có thể xác định các biến trong phần khai báo của mô-đun (ở đầu mô-đun, trên cùng của tất cả các thủ tục con) và đặt phạm vi biến của bạn bằng cách sử dụng Câu lệnh công khai, câu lệnh Dim hoặc câu lệnh Private. Nếu bạn đưa câu lệnh Public trước biến số của bạn, biến số của bạn sẽ sẵn dùng cho tất cả macro trong tất cả các mô-đun trong dự án. Nếu bạn đưa câu lệnh Dim hoặc câu lệnh Private trước biến của bạn, thì biến số của bạn chỉ sẵn dùng cho macro trong mô-đun nơi nó được khai báo. Để thấy sự khác biệt giữa câu lệnh Công khai và câu lệnh Mờ, hãy làm theo các bước sau:
LƯU Ý: Nếu bạn muốn giới hạn phạm vi biến của mình trong mô-đun mà biến được khai báo, hãy sử dụng Privatestatement thay cho câu lệnh Dim. Cả hai đều đạt được hiệu ứng giống nhau nhưng phạm vi sẽ rõ ràng hơn khi bạn đọc mã nếu bạn sử dụng câu lệnh Riêng tư. Thời hạn của biến sốThời gian trong khi biến số giữ lại giá trị của nó được gọi là tuổi thọ của nó. Giá trị của một biến số có thể thay đổi trong toàn thời gian của biến nhưng vẫn giữ lại một giá trị. Ngoài ra, khi một biến mất phạm vi, nó không còn có một giá trị. Khởi tạo giá trị của biến sốKhi bạn chạy macro, tất cả các biến số được khởi tạo thành một giá trị. Biến số được khởi tạo thành không, một chuỗi độ dài biến đổi được khởi tạo thành chuỗi có độ dài bằng 0 ("") và một chuỗi có độ dài cố định sẽ được điền bằng mã ASCII 0. Biến biến thể được khởi tạo thành Trống. Biến Trống được thể hiện bằng số 0 trong ngữ cảnh số và chuỗi độ dài bằng 0 ("") trong ngữ cảnh chuỗi. Biến mức thủ tụcNếu bạn có một biến được khai báo trong macro bằng cách dùng câu lệnh Dim, biến số sẽ giữ lại giá trị của nó miễn là macro đang chạy. Nếu macro này gọi là macro khác, giá trị của biến số sẽ được giữ lại (mặc dù không sẵn dùng cho các macro khác) miễn là những macro khác này cũng đang chạy. Để minh họa cách hoạt động của các biến số ở cấp thủ tục, hãy làm theo các bước sau:
Bạn nhận được cùng một thông báo được mô tả trong bước 3 đến 6 vì ngay khi Macro1 ngừng chạy ở Bước 6, giá trị của biến x đã bị mất. Do đó, khi bạn chạy lại Macro1 ở Bước 7, thông báo đầu tiên sẽ hiện giá trị x là không (giá trị khởi tạo). Từ khóa tĩnhNếu biến mức thủ tục được khai báo bằng từ khóa Tĩnh, biến số sẽ giữ lại giá trị của nó cho đến khi dự án của bạn được đặt lại. Do đó, nếu bạn có một biến tĩnh, thì lần tiếp theo bạn gọi thủ tục của bạn, biến số tĩnh được khởi tạo đến giá trị cuối cùng. Để xem từ khóa Tĩnh hoạt động như thế nào, hãy làm theo các bước sau:
Giá trị xuất hiện trong thư là khác nhau lần thứ hai vì biến x được khai báo là biến số tĩnh và biến số giữ lại giá trị của nó sau khi bạn chạy Macro1 lần đầu tiên. LƯU Ý: Nếu bạn có biến số mức mô-đun, thì tuổi thọ của biến số giống hệt như khi biến số là biến số mức thủ tục tĩnh. Để xác nhận tuổi thọ của biến ở cấp mô-đun, hãy làm theo các bước sau:
Giá trị xuất hiện trong thư là khác nhau lần thứ hai vì biến x được khai báo là biến tĩnh và giữ lại giá trị của nó sau khi bạn chạy Macro1 lần đầu tiên. Đặt lại dự án để đặt lại biến sốNếu bạn muốn đặt lại giá trị cho một biến tĩnh hoặc cho biến số cấp mô-đun, hãy bấm vào nút Đặt lại trên Thanh công cụ chuẩn hoặc bấm vào Đặt lại trên menu Chạy. Nếu bạn thực hiện điều này cho dự án Macro1, rồi chạy lại Macro1,giá trị của biến x được khởi tạo trở về không và bạn nhận được thông báo đầu tiên: the initialized value of x is 0 Bạn cần thêm trợ giúp?Bạn muốn xem các tùy chọn khác?Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa. Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú. |