【发布时间】:2016-02-14 23:47:25
【问题描述】:
我有以下代码摘录,我试图将一系列值复制到声明的数组中,但它不断给我“无法分配给数组”错误,
Dim permittedCurve(0 To 7000) As Variant
permittedCurve = activeWorkbook.Worksheets("Origin").Range("AB6:AB7006").value
我也试过这个,但给了我同样的错误..
Dim permittedCurve(7000) As Variant
permittedCurve = application.transpose(activeWorkbook.Worksheets("Origin").Range("AB6:AB7006").value)
有人可以帮忙吗?我真的没有看到这两种方法有什么问题。 :-(
==============================
更新
我已经尝试了以下,
Dim permittedCurve(4) As Variant
Dim indicationCurve(4) As Variant
indicationCurve(0) = 1
indicationCurve(1) = 10
indicationCurve(2) = 100
indicationCurve(3) = 1000
indicationCurve(4) = 10000
'Copying the curves
permittedCurve = indicationCurve
这仍然会产生相同的“无法分配给数组”错误...为什么?
【问题讨论】:
-
excel是什么版本的?它有 7000 列吗?另外,您的范围没有 7001 值吗?试试 allowedCurve(7001)
-
当您声明一个数组(0 到 7000)时,数组中的总元素为 7001,与我定义的范围相匹配。 (行数组),我使用的是 Excel 2016 64 位版本。无论如何,我确实尝试过(7001)并且不起作用..
-
@lukieleetronic 我在网上看到的使用转置执行此操作的唯一示例是他们声明没有最小和最大范围的变体(permittedCurve),然后为其分配一个数组 - 但显然你可以完成通过重新调整变体来实现同样的事情 - 我对我的回复进行了编辑