如何创builddynamicvariables名称VBA
我正在尝试在VBA中根据单元格中的值创builddynamic数量的variables。 基本上我最终想要的就是像Team1, Team2... to TeamX
。 任何帮助是极大的赞赏
Dim i, x As Integer Set x = Range("J4").Value Dim Team(1 To x) As String Dim Manager(1 To x) As String Range("A3").Select For i = 1 To x Dim Team(i) As Integer
在这种情况下,字典可能会有所帮助,它是为脚本devise的,虽然它不会让您创build“dynamic”variables,但字典的项目是dynamic的,可以用作“variables”类似的目的。
Dim Teams as Object Set Teams = CreateObject("Scripting.Dictionary") For i = 1 To x Teams(i) = "some value" Next
稍后,要查询这些值,只需调用该项目,如:
MsgBox Teams(i)
字典包含键/值对,而且键必须是唯一的。 分配给现有的密钥将覆盖其值,例如:
Teams(3) = "Detroit" Teams(3) = "Chicago" Debug.Print Teams(3) '## This will print "Chicago"
如果您需要担心覆盖问题,可以使用.Exist
方法检查是否存在。
If Not Teams.Exist(3) Then Teams(3) = "blah" Else: 'Teams(3) already exists, so maybe we do something different here End If
您可以使用.Count
方法获取字典中的项目数量。
MsgBox "There are " & Teams.Count & " Teams.", vbInfo
字典的键必须是整数或string,但是值可以是任何数据types(包括数组,甚至是Object
数据types,如使用Set
关键字的Collection
, Worksheet
, Application
,嵌套字典等),所以例如,可以在工作簿中说明工作表:
Dim ws as Worksheet, dict as Object Set dict = CreateObject("Scripting.Dictionary") For each ws in ActiveWorkbook.Worksheets Set dict(ws.Name) = ws Next
这会让你开始。 但在开始之前,我build议您在Youtube上观看这些WiseOwlTutorials教程:
- select单元格(范围,单元格,活动单元格,结束,偏移)
- 工作表,图表和表格
- variables
- 数组
昏暗我,x作为整数 x =范围(“J4”)。值 昏暗的团队()作为整数 Dim Manager()As String ReDim团队(1到x)整数 ReDimpipe理器(1到x)作为string 范围( “A3”)。select 对于i = 1到x 队(我)=我 下一个
- 如何使用asp.net和c#stream式传输Excel 2007或Word 2007文件
- 如何开发包含正则expression式的Excelmacros,以便在Windows和Mac中使用
- Microsoft.ACE.OLEDB.12.0无法执行查询
- 在excel中将一个string写入一个单元格
- 读取Excel(.xls)模板,用文本框的值replacevariables,并保存在C#中的Excel文件
- 如何将工作表保存在具有不同名称的其他path中
- 获取括号之间的值
- 如何处理来自embedded式Excel.OleObjects或Excel.Shapes的事件
- Excel VBA中的CheckOut(Sharepoint)Word文档