将数组值赋给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从不声明。