将常量的字符串表示形式转换为常量?

Dem*_*nex 3 excel vba excel-vba

我正在尝试从数据单元接受格式化常量,所以我有一个字符串"xlTotalsCalculationAverage".如何将其转换为它所代表的Excel常量; 常量xlTotalsCalculationAverage等于整数2.

ActiveSheet.ListObjects(1).ListColumns(RemainingHeader).TotalsCalculation = xlTotalsCalculationAverage
Run Code Online (Sandbox Code Playgroud)

是一个静态表示.

TargetTotal = something("xlTotalsCalculationAverage")
ActiveSheet.ListObjects(1).ListColumns(RemainingHeader).TotalsCalculation = TargetTotal
Run Code Online (Sandbox Code Playgroud)

是我的目标.

我可以创建一个巨大的case或switch语句,但复制所有可能的值似乎很愚蠢.

如何让Excel将此字符串转换为已知的常量值?

Tim*_*ams 9

这总是这样的:

Sub Tester()
    MsgBox WhatIsTheValue("xlTotalsCalculationAverage")
    MsgBox WhatIsTheValue("xlTotalsCalculationCountNums")
End Sub



Function WhatIsTheValue(s As String) As Variant

        Dim VBProj As VBIDE.VBProject
        Dim VBComp As VBIDE.VBComponent
        Dim CodeMod As VBIDE.CodeModule
        Set VBProj = ActiveWorkbook.VBProject
        Set VBComp = VBProj.VBComponents("modTemp")
        Set CodeMod = VBComp.CodeModule

        With CodeMod
            .DeleteLines 1, .CountOfLines
            .InsertLines 1, "Public Function GetEnumVal()"
            .InsertLines 2, "GetEnumVal = " & s
            .InsertLines 3, "End Function"
        End With
        WhatIsTheValue = Application.Run("GetEnumVal")

End Function
Run Code Online (Sandbox Code Playgroud)

但实际上 - 不要这样做.