Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VBA Excel代码中的Erf()不';我不能在Excel 2003中工作_Excel_Add In_Vba - Fatal编程技术网

VBA Excel代码中的Erf()不';我不能在Excel 2003中工作

VBA Excel代码中的Erf()不';我不能在Excel 2003中工作,excel,add-in,vba,Excel,Add In,Vba,我需要在VBA Excel程序中计算错误函数Erf()。我已经实现了类似的功能: aux_A = -Application.WorksheetFunction.Erf(p) 以前,在Excel2007中,我安装了Analysis Toolpak外接程序,它工作得很好,但是在Excel2003中它不起作用(而且加载项也安装了) 有什么问题吗? (请注意,我希望在VBA代码中使用结果,而不是在Excel工作表中) 谢谢大家! Erf函数不是有两个参数(上限、下限)吗?在Excel 2007之前,E

我需要在VBA Excel程序中计算错误函数Erf()。我已经实现了类似的功能:

aux_A = -Application.WorksheetFunction.Erf(p)
以前,在Excel2007中,我安装了Analysis Toolpak外接程序,它工作得很好,但是在Excel2003中它不起作用(而且加载项也安装了)

有什么问题吗?

(请注意,我希望在VBA代码中使用结果,而不是在Excel工作表中)


谢谢大家!

Erf函数不是有两个参数(上限、下限)吗?

在Excel 2007之前,Erf在分析工具包中,因此您必须直接调用函数(没有
工作表函数
部分)

从Excel2007开始,它们将许多函数移到工作表函数库中,这就是为什么现在必须使用
WorksheetFunction.Erf(p)

在VBA编辑器中,按F2键并搜索Erf。您将看到库和类在2007年之前和之后的版本中是不同的

  • 在外接程序(工具->外接程序)中添加“分析工具包-VBA”
  • 在VBA项目编辑器(工具->引用)中添加对atpvbaen.xla的引用
  • 尝试:

    n=Erf(0.5)


  • 对我有用。

    你说的“不起作用”是什么意思?您是否遇到编译时错误?是否得到错误的结果?是否确定Excel 2003分析工具包中的函数可用?Excel是否正确加载了Excel 2003分析工具包?Heinzi:错误是:执行时出错“438”,对象不允许此属性或方法。菲利普:是的,我检查过了,分析工具包正确地加载到了我的Excel2003SP3中。这个功能似乎在这个工具包中不可用,但是,它在哪里?是否在某处可用?抱歉,但是获取aux_A=-Erf(p)会导致编译错误(在Excel 2003 Professional Edition SP3和安装的工具包中)。此外,如果我在VBA编辑器中输入“Erf”,它不会给我任何结果。@juanjosanz您是否同时安装并检查了“分析工具包”和“分析工具包-VBA”?是的,CaBieberach,它们都已安装并检查,所以我迷路了。有什么建议吗?事实上可以,但不必。Erf的excel实现允许从零以外的下限进行积分以及单参数实现。excel中的ie-Erf(2,3)等价于(Erf(3)-Erf(2))
    aux_A = -Erf(p)