我有以下代码摘录,我试图将一系列值复制到声明的数组上,但它一直给我“无法分配给数组”错误,
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)
有人可以帮忙吗?我真的不认为这两种方法有什么问题。 :-(
=============================
Updated
我尝试过以下方法,
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
这仍然会产生相同的“无法分配给数组”错误...为什么?
当您从工作表的单元格批量加载时,您always得到一个二维数组。第一等级可以被认为是“行”,第二等级可以被认为是“列”。
dim permittedCurve As Variant
'the following is the same as redim permittedCurve(1 to 3, 1 to 6)
permittedCurve = Range("A1:F3").Value2
debug.print lbound(permittedCurve, 1) & ":" & ubound(permittedCurve, 1)
debug.print lbound(permittedCurve, 2) & ":" & ubound(permittedCurve, 2)
'results from the Immediate window:
1:3
1:6
考虑到与本机一起工作的问题(和开销)移调功能 https://support.office.com/en-us/article/TRANSPOSE-function-ED039415-ED8A-4A81-93E9-4B6DFAC76027,如果您打算从工作表中来回移动值,请坚持使用二维数组en masse.
更新后的问题可以通过更改变量声明来解决。
Dim permittedCurve As Variant '<~~ just a variant, not specifically a variant array with 5 elements
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
'now it's a variant array with 5 elements
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)