從 VBA 中的函式返回陣列

Iqra Hasnain 2022年7月18日
從 VBA 中的函式返回陣列

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 輸出中返回陣列函式

從上面的示例中可以看出,我們可以使用 VBA 中的函式輕鬆地返回一個陣列,並將陣列用作 Variant。但是當我們在子過程中獲取陣列並使用 MsgBox 顯示它時,它將是我們從函式返回的陣列的引用,而不是實際陣列。

因此,如果我們嘗試更改陣列,我們也會更改從函式中獲得的陣列的引用。但如果目的只是使用函式返回陣列,我們可以這樣做。

相關文章 - VBA Array