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将此字符串转换为已知的常量值?
这总是这样的:
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)
但实际上 - 不要这样做.
| 归档时间: |
|
| 查看次数: |
2846 次 |
| 最近记录: |