gpt4 book ai didi

arrays - 为什么这会创建一个二维数组 - Excel VBA

转载 作者:行者123 更新时间:2023-12-04 21:29:32 26 4
gpt4 key购买 nike

这是加载我的数组的代码行,该数组的名称从 E 列开始,并转到前面循环确定的行中的姓氏。循环计算“LastColumn”。我想指出它应该在看第一张纸,尽管开始它的按钮在那个页面上。不确定是否需要。

Dim AssociateNameArray As Variant

AssociateNameArray = Worksheets(1).Range(Cells(1, 5), (Cells(1, LastColumn))).Value

这将创建一个二维数组,其中 (1,1) 具有第一个名称,(1,2) 具有第二个名称,依此类推。

如何修改它以便将范围内的数据放入一维数组?

最佳答案

两种方式:

将数组转置两次

AssociateNameArray = Application.Transpose(Application.Transpose(Worksheets(1).Range(Worksheets(1).Cells(1, 5), Worksheets(1).Cells(1, LastColumn)).Value))

或者循环二维数组并将其放入一维数组中:
Dim AssociateNameArray As Variant
AssociateNameArray = Worksheets(1).Range(Worksheets(1).Cells(1, 5), Worksheets(1).Cells(1, LastColumn)).Value

Dim newArr()
ReDim newArr(1 To UBound(AssociateNameArray, 2))

Dim i As Long
For i = 1 To UBound(AssociateNameArray, 2)
newArr(i) = AssociateNameArray(1, i)
Next i

转置对允许的项目数量有限制,但对于单行应该没问题。第二个没有这样的限制。

从技术上讲,可以循环范围并跳过二维数组,但这将是较慢的选择,因为任何时候代码都会破坏工作表的面纱,它会减慢代码的速度。

关于arrays - 为什么这会创建一个二维数组 - Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57913965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com