将数组值赋给VBA中的variables会导致我的UDF退出

我似乎无法弄清楚为什么这个UDF正在currentInput = inputArray(i)上退出。 这是相关的代码:

 Function OrderRange(inputRange As Range) As Variant Dim length As Integer inputHeight = inputRange.Count Dim inputArray As Variant inputArray = inputRange Dim strippedArray() As Variant ReDim strippedArray(0 To (inputHeight - 1)) Dim currentInput As String Dim i As Integer For i = 0 To (inputHeight - 1) currentInput = inputArray(i) '...computations on currentInput...' strippedArray(i) = currentInput Next i OrderRange = strippedArray End Function 

debugging器到达currentInput = inputArray(i)但是一旦我移动到下一行,函数终止,并且#VALUE! 错误被input到我调用函数的单元格中。 我知道这是一个具体问题,但我确定这是一个普遍问题,我将编辑这个原始post,以反映一般问题是什么。

编辑:这是一个关于范围分配到variables数组的问题。

通过将它们设置为等于范围而创build的变体数组即使它们只有一列,或者宽,也有两个维度。 所以如果你用A1:A10来调用函数,你会得到一个10 * 1的数组。 此外,维度的下限将是一个,而不是零。 所以你不得不这样做:

 For i = 1 To (inputHeight) currentInput = inputArray(i, 1) 

你也应该使用Option Explicit来提醒你声明所有的variables。 InputHeight从不声明。