我对VBA完全陌生。
我创建了一个名为QualVal的用户定义类型,它有两个成员变量。 然后我创建了几个变量作为Qualval并初始化它的值。
现在我想读取一个单元格值,它是一个字符串并与变量名称匹配并对其进行类型转换。
Type QualVal
ul As Integer 'upper limit
ll As Integer 'lower limit
End Type
类型为QualVal的变量:
g1.ll = 94
g1.ul = 96
n.ll = 90
n.ul = 93
现在我想做这样的事情:
Dim group As QualVal
group = Cell(1, 2).Value 'would like to cast it to either g1 or n according to the cell value which also can only contain g1 or n
我希望我很清楚我想做什么。 我可以使用一个select case语句,但我有比提到的更多的变量,这个解决方案看起来不太好。
也许有人可以帮助我。
提前感谢您和最好的问候!
答案 0 :(得分:0)
我认为你不能这样做,但我不确定。
无论如何,我能看到的最佳解决方案是将所有可能的变量名称及其对象存储在Collection中。像这样:
Dim vars As New Collection
vars.Add "g1", g1
vars.Add "n", n
Dim group As QualVal
group = vars.Item(Cell(1, 2).Value)
这也更加安全,因为您可以控制暴露的变量。