arrays - 从子例程返回数组给出 : Compile error: Can't assign to array

标签 arrays vba excel

我的目标是从子例程返回数组。我一直在关注this教程。这是我的代码:

Function FuncReturnArray() As String
  Dim Films(1 To 5) As String
  Films(1) = "Lord of the Rings"
  Films(2) = "Speed"
  Films(3) = "Star Wars"
  Films(4) = "The Godfather"
  Films(5) = "Pulp Fiction"
  FuncReturnArray = Films
End Function

Sub SubReturnArray()
  Dim Films() As String
  Films = FuncReturnArray()
  MsgBox Films(4)
End Sub

编译错误:无法分配给数组并且编辑器指向以下行:Films = FuncReturnArray()我做错了什么?

最佳答案

如此接近 - 你真的会为此踢自己一脚:

Function FuncReturnArray() As String()
  Dim Films(1 To 5) As String
  Films(1) = "Lord of the Rings"
  Films(2) = "Speed"
  Films(3) = "Star Wars"
  Films(4) = "The Godfather"
  Films(5) = "Pulp Fiction"
  FuncReturnArray = Films
End Function

Sub SubReturnArray()
  Dim Films() As String
  Films = FuncReturnArray()
  MsgBox Films(4)
End Sub

注意上面代码中的第一行 - “String”后面需要跟“()”以表明 FuncReturnArray 是一个数组。您可能认为“FuncReturnArray”后面的括号执行了此操作,但实际上在该上下文中,它们是指没有参数传递给函数的事实。

关于arrays - 从子例程返回数组给出 : Compile error: Can't assign to array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33151361/

相关文章:

python - 更改 dtype 时 Numpy 数组形状发生变化

c++ - VC++ 中的光纤安全优化到底是什么?

vba - 从收件箱中删除电子邮件,并通过规则->脚本将其从已删除项目文件夹中删除

sql - 使用 Excel 宏 (ADODB) 在 SQL Server 2008 中创建临时表

vba - 如果 Excel 工作簿打开,则...... VBA

vba - 如何使用单元格的内容作为我的代码的输入?

C:检查一个数组只包含 0-7 范围内的数字

javascript - jQuery .each 对象排序

vba - 将此长 Excel 日期公式转换为 VBA

excel - 通过变量声明多维数组大小