我想创建一个接受范围,键和索引的VBA函数,并根据它的索引位置返回一个值。
代码看起来像这样。
Function SortRange(datarange As Range, mycolumn As Range, position)
Dim theResult As Range
Set theResult = hasil.Sort(Key1:=kolom, order1:=xlAscending, Header:=xlNo)
SortRange= position.Cells(nomorurut, 1)
End Function
但是,我总是得到#VALUE结果。代码有什么问题?
答案 0 :(得分:0)
这里似乎有很多错误,或者至少有很多潜在的错误。
首先也是最重要的是,如果您将其称为工作表函数,则永远不会工作。 UDF无法操作工作表对象(.Sort
方法操纵工作表)。
当你指示函数接受一个范围,一个键(字符串?)和索引(整数/长?)时,你的函数接受两个范围参数和一个第三个未打字的变量,它似乎是一个基于对象的工作表在后来打电话给position.Cells
。因此,该函数似乎不接受您希望它接受的参数,这可能会导致不匹配错误。
以下也是潜在的错误:
position
不是工作表对象,则会收到错误(对象不支持此属性或方法)hasil
不是全局变量,或者尚未实例化,则会收到错误(对象变量或未设置块)您尝试做的事情并不完全清楚,但VLOOKUP
,INDEX
和/或MATCH
函数可能已经完成了您的尝试。