gpt4 book ai didi

arrays - 无法对数组进行切片

转载 作者:行者123 更新时间:2023-12-04 22:15:06 25 4
gpt4 key购买 nike

我正在尝试从不连续的行中获取数据。列是固定的,但行号会有所不同。我期待的结果是一个二维数组。我不知道我做错了什么,但使用索引功能的切片不起作用。

'Just for example to get the data from row number 100, 500 and 900 and the columns from A to F
arr = Application.Index(Sheet2.Range("A:F"), array(100, 500, 900))
我想如果第三个参数留空行切片将完成。但是生成的数组是一维的(大小为 3),并且填充了错误 2023。
所以我又给了第三个参数。
arr = Application.Index(Sheet2.Range("A:F"), array(100, 500, 900), array(1, 2, 3, 4, 5, 6))
即使现在得到的数组是一维的(大小为 6),但前三个索引有数据,其余的有错误 2042。是否有可能通过切片二维数组来获得二维数组?如果是,请指出我正确的方向。

最佳答案

行数组需要是垂直的:

arr = Application.Index(Sheet2.Range("A:F"), Application.Transpose(Array(100, 500, 900)), Array(1, 2, 3, 4, 5, 6))
enter image description here
人们总是可以创建一个从 1 到列数的一维数字数组并使用它:
Dim rng As Range
Set rng = Sheet2.Range("A:F")

Dim test As Variant
ReDim test(rng.Columns.Count - 1)

Dim i As Long
For i = LBound(test) To UBound(test)
test(i) = i + 1
Next i

Dim arr As Variant
arr = Application.Index(rng, Application.Transpose(Array(100, 500, 900)), test)

关于arrays - 无法对数组进行切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70356535/

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