You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将List模块中getlist函数的tableData二维数组复制到Main子程序?

VBA模块间二维数组传递实现方案

核心问题修正

你之前的代码存在两个关键问题:

  • getlist函数未声明返回值类型,无法传递数组
  • 函数内的tableData是局部变量,外部模块无法直接访问

修改后的完整代码

List模块代码

' List模块
Public Function getlist() As String()
    ' 示例:创建并初始化二维数组(可根据实际需求修改大小和内容)
    Dim tableData(1, 2) As String
    tableData(0, 0) = "A1"
    tableData(0, 1) = "A2"
    tableData(0, 2) = "A3"
    tableData(1, 0) = "B1"
    tableData(1, 1) = "B2"
    tableData(1, 2) = "B3"
    
    ' 将数组作为函数返回值传递出去
    getlist = tableData
End Function

Main模块代码

' Main模块
Sub Main()
    Dim partlist() As String
    ' 调用List模块的getlist函数,接收返回的二维数组
    partlist = List.getlist
    
    ' 可选:遍历数组验证结果(输出到立即窗口)
    Dim i As Integer, j As Integer
    For i = LBound(partlist, 1) To UBound(partlist, 1)
        For j = LBound(partlist, 2) To UBound(partlist, 2)
            Debug.Print "partlist(" & i & "," & j & ") = " & partlist(i, j)
        Next j
    Next i
End Sub

关键说明

  • 函数必须明确声明返回值类型为String(),对应二维字符串数组
  • 函数内部完成数组的创建和赋值后,直接将数组赋值给函数名,以此作为返回值
  • 主程序中通过调用List.getlist获取数组,无需访问函数内的局部变量(局部变量仅在函数内部有效)
  • 如果需要动态调整数组大小,可在函数内使用ReDim(如需保留数据则用ReDim Preserve),最后同样将数组赋值给函数名返回

内容的提问来源于stack exchange,提问作者mesyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 22:20:30