excel - 如何将数组的一部分分配给vba中的另一个较短的数组?

标签 excel vba

我有一个大约 8 个元素的更大数组。我想将它分配给另一个较小的 3 个元素数组。我该怎么做呢?这是我的代码,但我不断收到错误消息“无法分配给数组”
谢谢你的帮助。

Dim largeArr() as variant
largeArr = Array(7, 8, 9, 10, 11, 12, 13, 14)

Dim smallArr(3) As Variant

smallArr=largeArr()

最佳答案

要对数组进行子集化,您可以通过循环遍历所需部分来为小数组提供大数组的各个值。

Sub test()
Dim largeArr(), smallArr(1 To 3) As Variant

largeArr = Array(7, 8, 9, 10, 11, 12, 13, 14)

For x = 1 To 3
  smallArr(x) = largeArr(x + 5)
  Debug.Print smallArr(x) 'Print small array in the Immediate Window
Next x

End Sub

在循环中,调整 ilargeArr(x+i)到达大阵列的所需部分。

另见 How do I slice an array in Excel VBA? .

关于excel - 如何将数组的一部分分配给vba中的另一个较短的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25790695/

相关文章:

excel - 复制自动过滤范围,vba excel

excel - 如何在列中查找值并将范围从其他工作表粘贴到其相邻列中

file - 重新初始化 "ThisWorkbook.Path"

vba - 使用 VBA 将文本添加到 Excel 中的单元格

excel - 如何在 Excel 中创建时间范围图

excel - 在 Excel 中检查/检测动态数组溢出

date - VBA自动过滤器在Excel中按日期设置-不显示任何数据

VBA:将具有值的字段添加到记录集

vba - 将名为 Range 的 Excel 转换为行的集合

c# - 如何从 Excel 中解析 "cut n paste"