我希望能够使用字符串变量调用应用程序函数,例如left()和right()。

原因是我当前的代码运行良好,但是有多个left()和right()实例,每次运行它都可能需要更改。我希望每次只能更改一次(“全局”)。

谷歌搜索后,我尝试了CallByName和Application.Run。看来它们仅适用于自定义类/宏。这是真的?我还有什么需要研究的吗?我不需要特定的代码,谢谢!

最佳答案

如果需要LeftRight,则可以在其中传递自定义函数。

Option Explicit

Sub Test()

    Debug.Print LeftRight("L", "StackOverflow", 5)
    Debug.Print LeftRight("R", "StackOverflow", 8)

End Sub

Function LeftRight(sWhich As String, sValue As String, iLength As Integer) As String

    Select Case sWhich

        Case "L": LeftRight = Left(sValue, iLength)
        Case "R": LeftRight = Right(sValue, iLength)

    End Select

End Function

您只需要根据需要使用“ L”或“ R”即可。对其进行一次更改,然后每次均作为sWhich传递。
您甚至可以为此使用单元格引用,并在运行代码之前更新单元格。
结果

叠放
溢出

关于excel - Excel VBA-按名称调用应用程序功能(左,右),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44010499/

10-09 05:36