可以使用WorksheetFunction对象在VBA中访问Excel的大多数工作表函数。但是,某些功能似乎不可用。一个这样的函数是BIN2DEC,它将二进制值转换为十进制值。它不可用的原因是BIN2DEC实际上不是Excel工作表函数,它是Analysis ToolPak加载项的一部分。

在这种情况下,您有两个选择:您可以加载等效于Analysis ToolPak的VBA,或者可以在VBA中创建自己的BIN2DEC函数。首先,请确保在Excel中安装了Analysis ToolPak — VBA加载项。如果可用的加载项中未列出该文件,请使用Windows搜索文件ATPVBAEN.XLA。 (如果您使用英语以外的其他语言版本的Excel,则文件的“ EN”

部分将有所不同。)这是您要启用的实际加载项。

启用加载项后,显示VBA编辑器并选择“工具” |“工具”。引用以显示“引用”对话框。确保选择了atpvbaen.xla参考。关闭对话框,然后可以像使用其他任何工作表功能一样使用BIN2DEC。

另一个选择是创建自己的BIN2DEC函数。下面是一个函数示例,该函数接受包含二进制数字的字符串并返回一个表示该字符串的十进制值的数字值。

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

实际上,此功能与BIN2DEC工作表功能没有相同的限制。它将与包含10位数以上的二进制数字一起使用。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3063)适用于Microsoft Excel 97、2000、2002和2003。