normally, I do not bother with the range object in VBA Excel since I very often run into problems even after studying background information (=> "Object not found etc."). But I encountered a function worksheetfunction.rank which does not like arrays, but needs a range.
Despite all my efforts, I could not get my array into a range. Last effort has been a workaround: writing data on a (hidden) worksheet from the array, then take the range from there. I packaged this in a user-defined function but it does not work. So, I would kindly ask the community here to take a look. Thank you very much in advance.
Function Transform_Array_into_Range(Feld() As Variant) As Range
'Uses Worksheet "For_Range_Transform" to transform an Array into a range
'Only one column !; needs Option Base 1
Dim rng As Range
Dim lowercounter As Integer
Dim highercounter As Integer
Dim i As Integer
lowercounter = LBound(Feld())
highercounter = UBound(Feld())
Set rng = Worksheets("For_Range_Transform").Range("A1:A1")
Debug.Print (rng(1))
ThisWorkbook.Worksheets("For_Range_Transform").Cells.ClearContents
If lowercounter > 1 Then
Set rng = Range("A1:A1").Resize(highercounter, 1)
' Worksheets("For_Range_Transform").rng.Resize = rng(UBound(Feld()), 1)
' Set rng = Range("A1:A1").Resize(highercounter, 1).Select
End If
For i = 1 To highercounter
rng(i).Value = Feld(i)
Next i
End Function
Sub Test_of_UDF_Transform_Array_into_Range()
'gives error
Dim i As Integer
Dim arrF(1 To 5) As Variant
Dim rngR As Range
Dim ws As Worksheet
For i = 1 To 5
arrF(i) = i
Next i
Set rngR = Worksheets("For_Range_Transform").Range("A1:A1")
Set rngR = Transform_Array_into_Range(arrF())
Debug.Print (ThisWorkbook.Worksheets("For_Range_Transform").rngR(2).Value)
End Sub