将数组从函数返回到主子

时间:2018-01-16 11:33:02

标签: arrays excel vba excel-vba

我希望将所有标签名称存储在字符串数组中,以后我会将其用于其他内容。我目前的问题是,我想在一个单独的函数中填充我的数组,当这样做时,将它交回我的主要子。

它抛出

  

无法分配到数组

作为一个错误,我在这里看不到什么?

Sub Captions_Formatting()
    Dim tabName() As String
    Dim totaltabs As Long
    Dim ws As Worksheet
    Dim captionlines As Integer

    totaltabs = get_Tabs
    tabName = getTabNames(ws, totaltabs)

End Sub

Function getTabNames(ws As Worksheet, totaltabs As Long) As String()
Dim i As Integer
ReDim tabName(totaltabs)

    For Each ws In Sheets
        If ws.Name <> "Overview" Then
            tabName(i) = ws.Name
            i = i + 1
        End If
    Next ws

getTabNames = tabName

End Function

非常感谢!

1 个答案:

答案 0 :(得分:3)

您需要键入数组以匹配函数返回类型:

ReDim tabName(totaltabs) As String

如果你不这样做,那么它的变量数组就不能自动(或者根本)强制转换为字符串数组。