重新定义一个整数的vba

我有困难解决我遇到的以下问题:

可以说我有这个代码

i_GroupNumberA = Application.WorksheetFunction.CountIf(Sheets("SheetX").Range("G2:G500"), "Red") i_GroupNumberB = Application.WorksheetFunction.CountIf(Sheets("SheetX").Range("G2:G500"), "Green") For i = 2 To LastRow For j = 2 To LastCol groupNumber = Sheets("Sheet1").Cells(i, j).Value i_GroupNumberA = 35 'this number a integer that I have got from a cells.value i_GroupNumberB = 39 If groupNumber = Sheets("Sheet1").Cells(i, j).Value Then i_Variable = "i_" + groupNumber + "AlphabeticLetter" MsgBox i_Variable End If Next j Next i 

结果,我得到了i_Variable作为一个消息框中的string作为结果:

i_groupNumberA

我想要得到以下结果:

35

我问的是如何获得一个string的新variables作为一个整数。

我不知道我是否问这个权利?


我做@engineersmnky说,但没有效果。 我检查网站,并与您的代码一起进行了一些调整。 但是,我仍然无法得到所需的数字作为回报。 到目前为止,我得到这个:

 Dim Group As New Collection i_GroupNumberA = Application.WorksheetFunction.CountIf(Sheets("SheetX").Range("G2:G500"), "Red") 'lets assume it is an number 35 i_GroupNumberB = Application.WorksheetFunction.CountIf(Sheets("SheetX").Range("G2:G500"), "Green") 'lets assume it is an number 39 Group.Add i_GroupNumberA Group.Add i_GroupNumberB For i = 2 To LastRow For j = 2 To LastCol groupNumber = Sheets("Sheet1").Cells(i, j).Value i_Variable = "i_" + groupNumber + "AlphabeticLetter" Group(i_Variable) Next j Next i 

组(i_variable)我不知道吗? 由于某种原因,它不工作。

由于你不能从vba的string获得一个variables值,我会build议创build一个Collection对象或Dictionary如果你需要更多样的东西

 dim groups AS New Collection 'Value, Key groups.Add 35, "i_GroupNumberA" groups.Add 39, "i_GroupNumberB" 

然后在你的循环中,而不是你可以使用的消息框

 groups(i_Variable) 

这将返回35“i_GroupNumberA”

更新集合使用Collection(Key)的Item和Key结构来返回所需的值,您必须指定该key

你可能需要dynamic地用你需要的组号来build立一个集合,因为我不确定这些是什么

 Function buildCollection(val As Variant,alpha AS String) AS Collection Dim groups As New Collection For i = 2 To LastRow For j = 2 To LastCol groupNumber = Sheets("Sheet1").Cells(i, j).Value i_Variable = "i_" & CStr(groupNumber) & alpha groups.Add val, i_Variable Next j Next i set buildCollection = groups End 

但没有关于你的结构的更多信息,我不能超越基本的例子。 什么是组号? 这是一个实际的整数? 什么是A和B? 请告知,因为这可能比我原先想象的要简单。 如果你把一些示例数据或其他东西,我相信我可以得到这个为你工作似乎是一个相当简单的循环。 虽然你在循环所有的单元格,并说明他们都是群组号码,这似乎让我感到困惑。