Sử dụng BIN2DEC trong Macro (Microsoft Excel)
Hầu hết các hàm trang tính của Excel có thể được truy cập trong VBA bằng cách sử dụng đối tượng WorksheetFunction. Tuy nhiên, một số chức năng có thể không khả dụng. Một trong những hàm như vậy là BIN2DEC, hàm này chuyển đổi giá trị nhị phân thành giá trị thập phân. Lý do nó không khả dụng là BIN2DEC không thực sự là một hàm trang tính Excel — nó là một phần của bổ trợ Analysis ToolPak.
Trong trường hợp đó, bạn có hai tùy chọn: bạn có thể tải VBA tương đương với Analysis ToolPak hoặc bạn có thể tạo hàm BIN2DEC của riêng mình trong VBA. Để thực hiện điều đầu tiên, hãy đảm bảo rằng trong Excel bạn cài đặt bổ trợ Analysis ToolPak – VBA. Nếu nó không được liệt kê trong phần bổ trợ có sẵn, hãy sử dụng Windows để tìm kiếm tệp ATPVBAEN.XLA. (Nếu bạn đang sử dụng phiên bản ngôn ngữ của Excel không phải là tiếng Anh, thì phần “EN”
của tệp sẽ khác.) Đây là phần bổ trợ thực tế mà bạn muốn bật.
Khi bạn đã kích hoạt phần bổ trợ, hãy hiển thị VBA Editor và chọn Công cụ | Tham chiếu để hiển thị hộp thoại Tham chiếu. Đảm bảo rằng tham chiếu atpvbaen.xla được chọn. Đóng hộp thoại và sau đó bạn có thể sử dụng BIN2DEC giống như cách bạn làm với bất kỳ hàm trang tính nào khác.
Tùy chọn khác là tạo hàm BIN2DEC của riêng bạn. Sau đây là ví dụ về một hàm chấp nhận một chuỗi có chứa các chữ số nhị phân và trả về một giá trị số đại diện cho giá trị thập phân của chuỗi đó.
Function Bin2Dec(sMyBin As String) As Long Dim x As Integer Dim iLen As Integer iLen = Len(sMyBin) - 1 For x = 0 To iLen Bin2Dec = Bin2Dec + _ Mid(sMyBin, iLen - x + 1, 1) * 2 ^ x Next End Function
Hàm này thực sự không có những hạn chế giống như hàm trang tính BIN2DEC; nó sẽ hoạt động với các số nhị phân chứa nhiều hơn 10 chữ số.
_Lưu ý: _
Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (3063) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003.