Funktioner för matrishantering
Här demonstreras tre generella funktioner vilka kan användas när vi arbetar med matriser i VBA.
Funktion för att erhålla antal dimensioner
Option Explicit
Function AntalDim(Arr As Variant) As Long
'© 2004 Alla rättigheter XL-Dennis
Dim i As Long
On Error Resume Next
Do
i = UBound(Arr, AntalDim + 1)
If Err Then Exit Do
AntalDim = AntalDim + 1
Loop
End Function
Sub Test()
Dim lnArray() As Long
ReDim lnArray(1 To 5, 1 To 10)
MsgBox AntalDim(lnArray)
End Sub
Funktion för att byta ut värden
I nedanstående Test-procedur ersätts det tredje värdet i matrisen (6) med värdet 100.
Option Explicit
Function InfogaArr(Arr As Variant, Index As Long, Varde As Variant) As Long
'© 2004 Alla rättigheter XL-Dennis
Dim i As Long
For i = UBound(Arr) - 1 To Index Step -1
Arr(i + 1) = Arr(i)
Next i
Arr(Index) = Varde
End Function
Sub Test()
Dim lnArray(1 To 5) As Long
Dim i As Long
For i = 1 To 5
lnArray(i) = i * 2
Next i
InfogaArr lnArray, 3, 100
For i = 1 To 5
Debug.Print lnArray(i)
Next i
End Sub
Ta bort värden
I Test-proceduren nedan tas det tredje värdet (6) bort och det sista värdet blir följaktligen 0.
Option Explicit
Function TaBortArr(Arr As Variant, Index As Long) As Long
'© 2004 Alla rättigheter XL-Dennis
Dim i As Long
For i = Index To UBound(Arr) - 1
Arr(i) = Arr(i + 1)
Next i
Arr(UBound(Arr)) = Empty
End Function
Sub Test()
Dim lnArray(1 To 5) As Long
Dim i As Long
For i = 1 To 5
lnArray(i) = i * 2
Next i
TaBortArr lnArray, 3
For i = 1 To 5
Debug.Print lnArray(i)
Next i
End Sub