VBA-呼叫覆盖功能

时间:2019-02-25 12:40:07

标签: vba override

我正在尝试使用功能Left从VBA中的字符串中提取前2个字符。

Left("qwerty", 3) 

通常,此函数返回“ qwe”。问题出在同一模块中,定义了另一个函数Left:

Public Function Left(ByVal Text As String, ByVal Value As String)

因此,如果我打电话

Left("qwerty", 3) 

该函数将从“ qwerty”中提取子字符串,直到字符串“ 3”为止,然后返回空字符串。

我的问题是,当第二个参数为整数时,如何调用标准的Left函数。

2 个答案:

答案 0 :(得分:1)

不要以现有功能命名您自己的功能,因此请重命名您当前的功能。由于您的功能不太可能像现有功能那样优化,为什么不简单地使用它呢?

此外,还使用

的类型化函数
Left$(myString,3)

在对诸如Left之类的字符串使用内置函数时。

另一种调用Left的方法是:

VBA.Left$

答案 1 :(得分:0)

找到了。 VBA.Left $(“ qwerty”,3)

VBA.Left(“ qwerty”,3)仍会调用自定义函数。