首页 > 解决方案 > VBA - 调用覆盖函数

问题描述

我正在尝试使用函数 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 函数。

标签: vbaoverriding

解决方案


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

此外,使用的类型化函数

Left$(myString,3)

当对字符串使用内置函数时,例如Left.

另一种调用方式Left是:

VBA.Left$

推荐阅读