nig*_*ors 4 arrays excel vba range
我似乎无法弄清楚为什么这个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
Run Code Online (Sandbox Code Playgroud)
调试器到达currentInput = inputArray(i)但是一旦我移动到下一行,函数终止并且#VALUE!错误被输入到我调用函数的单元格中.我知道这是一个具体的问题,但我确定这是一个普遍的问题,我将编辑这个原始帖子以反映一般问题是什么.
编辑:这是有关将范围分配给变量数组的问题.
通过将它们设置为等于范围而创建的变体数组具有两个维度,即使它们只是一列或行宽.因此,如果您使用A1:A10调用该函数,您将获得一个10*1数组.此外,尺寸的下限将是一,而不是零.所以你必须做以下事情:
For i = 1 To (inputHeight)
currentInput = inputArray(i, 1)
Run Code Online (Sandbox Code Playgroud)
此外,您应该使用Option Explicit,以便提醒您声明所有变量.从未声明InputHeight.