2010-02-03 56 views
2

我想编写一个像这样的Excel函数。它是Dec2Bin功能的延伸如何在vba编辑器中使用excel函数

Public Function Dec2BinEx(x As Long) 
    Dec2BinEx = dec2bin(x) + 10 
End Function 

但是在尝试使用它时出现错误。如何在Visual Basic编辑器中调用excel函数

回答

6

一般来说,你可以用Application.WorksheetFunction.SomeFunctionName来调用Excel函数。但是,Dec2Bin是特殊的,因为它是一个加载项函数,而不是纯粹的Excel函数。因此,Application.WorksheetFunction在这里不起作用。相反,您必须使加载项的功能可用于您的代码。为此,请按照下列步骤操作

  • 在Excel中,菜单工具/插件,使 确保外接Analysis ToolPak - VBA是进口的。

  • 然后,设定为基准此插件在你的代码 :在VBA编辑器,菜单 工具/引用,添加引用 atpvbaen.xls

然后,您的原始代码,发布在您的quesiton应该工作得很好。

+0

谢谢。这工作。我也试图在里面调用Mod()函数。有什么需要引用以支持VBA代码中的Mod函数 – Karthick

+0

@Karthick:在VBA中,存在Mod运算符(http://msdn.microsoft.com/en-us/library/aa164528%28office。 10%29.aspx)你可以使用。您不用工作表函数'= Mod(10,3)',而是在代码中编写'10 Mod 3'。 – stephan

+0

谢谢斯蒂芬。这工作正常。 – Karthick

0

您首先必须创建一个模块,例如从菜单中选择Insert-> Module。然后在这个模块内部创建一个名为main的函数。代码运行时,此功能默认运行。现在,这个函数内部调用自己的功能是这样的:

Sub main() 
    Call Dec2BinEx(your_value_here) 
End Sub 

Public Function Dec2BinEx(x As Long) 
    Dec2BinEx = dec2bin(x) + 10 
End Function 

已经这样做了,请确保您有参考DEC2BIN功能,或者如果你创建了。谢谢

+0

Sarfraz, 对于Excel用户定义的函数可以从工作表中调用,不需要MAIN子项。 –

+0

@Charles:谢谢你让我知道,因为我已经停止了这方面的工作已经很长时间了。谢谢 – Sarfraz

相关问题