Excel VBA:将可变大小的二维数组传递给用户选定的范围

时间:2016-07-22 02:43:28

标签: excel vba excel-vba

提前感谢您的时间!

因此,我的代码旨在允许用户选择包含数据的范围,该范围将传递到数组中。我使用do while循环来操作数据并将其传递给一个新的数组,其大小是第一个数据的大小的函数。

我想做的是允许用户选择一个单元作为这个新数组的目标范围的左上角,就像可以识别ANOVA表的起点一样。

我一直在尝试使用Application.Inbox为用户选择单元格,但它只是不起作用。

以下是我的一般情况:

'Allocate Array
arrayCustNum = Application.InputBox("Select Customer Number Range", "Customer Range", Type:=8)
arrayData = Application.InputBox("Select Data Range (no headers or cust numbers)", "Data Range", Type:=8)
arrayDataHeader = Application.InputBox("Select Data Header Range", "Data Header Range", Type:=8)    

'Allocate Destination Array
ReDim arrayDest(UBound(arrayData, 1) * UBound(arrayData, 2) + 2, UBound(arrayData, 2))

循环发生,然后我们转到输出:

Set rngPos = Range(Application.InputBox("Event Table will be size (" & UBound(arrayDest, 1) & _
", " & UBound(arrayDest, 2) & "). Choose the top left cell of desired location.", _
"Output Location", Type:=64))

rngPos.Resize(UBound(arrayDest, 1), UBound(arrayDest, 2)).Value = arrayDest

抛出的错误只是说“400”。

感谢您的意见!

1 个答案:

答案 0 :(得分:0)

width类型适用于64。同时将地址作为参数传递给array函数以返回范围。

Range