创建动态 VBA 变量名
Posted
技术标签:
【中文标题】创建动态 VBA 变量名【英文标题】:Create dynamic VBA variable name 【发布时间】:2021-12-31 02:50:15 【问题描述】:我的工作遇到了问题。
我必须从工作表中读取数据并将其保存到列表中。 我想到了一个循环,因为它必须是动态列表,因为我不想在下一个循环中丢失数据。
首先,我计算 Sheet 的列数,其次,我计算索引器列的行数。 例如: for i=1 to maxHorizont 'horizontal 对于 j =1 到 maxVertic '垂直
readColumn 将是名称的修复部分,我想将“i”(索引器)添加到它。
结果会是这样: DIM readColumn1 作为对象, DIM readColumn2 作为对象, DIM readColumn3 作为对象, . . .
您有什么办法可以解决我的问题吗?
【问题讨论】:
你不能像那样动态定义变量名(只是 vba 不支持)。 改用数组。 在任何时候你都认为你必须声明多个用于类似目的的变量并且需要通过索引来引用它们 - 想想数组(或集合)。 一些有用的链接:Create an array from range、2-dim array from range、Slice an array 使用Collection 或数组 【参考方案1】:最好的方法是使用数组。
假设你想获得 Double 值,你的数组应该这样声明:
ReDim readColumn1(0 To maxVertic) As Double
它们你可以通过一个循环来传递它:
For i = 0 To maxVertic
readColumn1(i) = worksheets("your_sheet").cells(i, your_column)
Next i
使用该逻辑,为每一列创建一个数组。
【讨论】:
以上是关于创建动态 VBA 变量名的主要内容,如果未能解决你的问题,请参考以下文章