背景:如果我需要在VBA里面调用反三角函数,由于VBA里面没有现成的反三角函数,应该怎么实现呢?
解决方法:excel里面有现成的反三角函数可以用,我们可以用function功能直接调用。
比如我需要自定义一个反余弦函数,比如我命名为arccos(名字任意),在别的模块里面这个函数就可以调用了。
function arccos(A As Double)
arccos = Application.WorksheetFunction.Acos(A)
End Function
拓展:经过测试,发现asin和acot是可以的,但是atan不行。怎么解决呢?
有两个方法,
1.利用三角函数之间的关系,用现成的函数表示出来即可。(我以前就是采用的此方法)
2.还是利用现成的函数,比如我想用反正切函数arctan,那么Atan2(x,y)可以解决,因为atan2(x,y)=tan(y/x),虽然这里有两个变量,我直接把x固定成1,那么事情就好办了,就可以直接定义一个arctan函数。
Function arctan(A As Double)
arctan = Application.WorksheetFunction.Atan2(1,A)
End Function
这虽然是一个小问题,但是使用频率很高的,所以感觉还是有必要记录下来。
--------------------------------------------------------------------------------------------------------------------By hans
2023/9/14 Shanghai