重新定义一个整数的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? 请告知,因为这可能比我原先想象的要简单。 如果你把一些示例数据或其他东西,我相信我可以得到这个为你工作似乎是一个相当简单的循环。 虽然你在循环所有的单元格,并说明他们都是群组号码,这似乎让我感到困惑。