從 VBA 中的函式返回陣列
Iqra Hasnain
2022年7月18日
VBA 是一種專有的中間語言。VBA 的全稱是 Visual Basic for Applications,是一種基於微軟開發的高階程式語言。
我們可以在不同的應用程式中使用 VBA,例如 Access、Excel、Word、Outlook 和 PowerPoint。
本文將通過示例介紹如何從 VBA 中的函式返回陣列。
從 VBA 中的函式返回陣列
在許多情況下,我們可能希望從 VBA 中的函式返回一個陣列。從函式返回陣列的語法如下所示。
# VBA
Function arrayData() As Variant
End Function
我們將函式宣告為 Variant 陣列,因為它使用起來更舒服。讓我們通過一個示例,嘗試在函式內建立一個陣列,並使用 VBA 中的 sub
返回它,如下所示。
# VBA
Function arrayData() As Variant
Dim myArray As Variant
ReDim myArray(1 To 2, 1 To 3)
myArray(1, 1) = "Name"
myArray(1, 2) = "Iqra"
myArray(1, 3) = "Hasnain"
myArray(2, 1) = "Name"
myArray(2, 2) = "Ben"
myArray(2, 3) = "Stoke"
arrayData = myArray
End Function
Sub test()
Dim arr As Variant
arr = arrayData()
MsgBox arr(1, 2)
End Sub
輸出:
從上面的示例中可以看出,我們可以使用 VBA 中的函式輕鬆地返回一個陣列,並將陣列用作 Variant。但是當我們在子過程中獲取陣列並使用 MsgBox
顯示它時,它將是我們從函式返回的陣列的引用,而不是實際陣列。
因此,如果我們嘗試更改陣列,我們也會更改從函式中獲得的陣列的引用。但如果目的只是使用函式返回陣列,我們可以這樣做。