将数组传递给函数返回“编译错误:类型不匹配:需要数组或用户定义的类型”

2023-12-06

我有以下打印数组元素的子例程:

Sub printArray(arr() As Variant)
  Dim i, lowerBound, upperBound As Integer
  lowerBound = LBound(arr)
  upperBound = UBound(arr)

  MsgBox "lowerBound: " & lowerBound
  MsgBox "upperBound: " & upperBound

  For i = lowerBound To upperBound
    MsgBox i & " : " & arr(i)
  Next i
End Sub

这按预期工作,我按以下方式调用它:

Sub callPrintArray()
  Dim arr(3) As Variant
  arr(0) = "John"
  arr(1) = "Star"
  arr(2) = #6/30/2010# ' Hire Date

  ' PRINTS ONE EXTRA ELEMENT WITHOUT THIS LINE
  ' Dim arr(3) As Variant MEANS INDEXING FROM 0 TO 2
  arr(3) = "LAST"
  Call printArray(arr)
End Sub

然后我有将现有工作表作为数组返回的函数:

Function getListOfSheetsW() As Variant
  Dim i As Integer
  Dim sheetNames() As Variant

  ReDim sheetNames(1 To Sheets.Count)
  For i = 1 To Sheets.Count
    sheetNames(i) = Sheets(i).Name
  Next i

  getListOfSheetsW = sheetNames
End Function

我想用提到的子例程打印该函数返回的工作表printArray。我试过了:

Sub callGetListOfSheetsW()
    Dim arr As Variant
    arr = getListOfSheetsW()

    ' Working
    MsgBox arr(1)
    MsgBox arr(2)

    ' Does not working
    ' Call printArray(arr)
End Sub

当我打印特定元素时它正在工作,但是当我想使用打印整个数组时printArray事实并非如此,我得到:

编译错误:类型不匹配:需要数组或用户定义类型。

我做错了什么?


Variant(可能碰巧包含数组)与 Variants 数组不同。您需要更改这一行:

Dim arr As Variant

to this:

Dim arr() As Variant
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将数组传递给函数返回“编译错误:类型不匹配:需要数组或用户定义的类型” 的相关文章

  • 使用PHP从doc、xls文件中读取数据

    我想知道是否可以从 doc 和 xls 文件中读取数据并将 将内容读取到图像文件中 创建文档的页面样本 例如 我有一些文件希望我的客户购买 所以我需要自动创建小图像 例如我的文档样本 我们将不胜感激您的帮助 对于读取 xls 文件 我真的推
  • 读取上传的Excel文件而不保存它

    在这段代码中 我从用户那里获取上传的文件并将其保存在我的应用程序中的文件夹中 然后对此 Excel 文件进行 OleDbConnection 并读取数据 我的问题是 有人可以建议一种阅读此 Excel 文件的首选方法 但无需预先保存它 因为
  • 如何从 SQL Server 存储过程返回值并在 Access VBA 中使用它们

    我已经在 SQL Server 中设置了一个运行良好的存储过程 我现在可以从 VBA 调用它 但想返回一个值以了解是否存在任何错误等 我的 SP 中的最后一个参数设置为 OUTPUT DataSetID int 0 Destination
  • 在工作表中合并行和求和值

    我有一个 Excel 工作表 其中包含以下数据 管道 来分隔列 A B C X 50 60 D E F X 40 30 A B C X 10 20 A B C Y 20 20 A B C X 20 70 D E F X 10 50 A B
  • 在Excel VBA中将图像(jpg)转换为base64?

    我需要在 Excel 中转换图像 或通过VBA 转为base64 最后我将进行XML输出 我怎样才能做到这一点 我需要引用 DOM 吗 我一直在读书这个问题 https stackoverflow com questions 169907
  • 从Excel工作表中读取汉字? (总是返回“???”)

    如何从Excel单元格中读取汉字并将其写入文件 当我取值时 Worksheets ActiveCell Worksheet Name Cells 3 columnNumbers 0 value 它总是返回 Dim fileStream Fi
  • Excel 接受一些字符,而 OpenXml 有错误

    我有一个字符串 我想使用 C 中的 openxml 组件将其导出到 Excel 文件 我的文本有 u001f 字符 而 openxml 对此字符有错误 错误文本 十六进制值 0x1f 是无效字符 我将该测试直接复制到 Excel 中 没有问
  • Excel 2007 从 C# get_Value 始终返回 -2146826265

    我有一个引用 Microsoft Excel 12 0 对象库的小型 C 应用程序 除此之外 它还从 Excel 单元格读取值 它从一些较旧的 Excel xls 文件和一些 2007 文件 xlsx 中读取此值 所有 xls 文件的值都会
  • 使用 LAMBDA 在 Excel 中生成所有排列

    这是一个经常被问到和回答的问题 如何在 Excel 中生成所有排列 2011 https stackoverflow com questions 5724373 permutations in excel 2016 https stacko
  • Python在没有pandas的情况下解码excel表

    我正在尝试在 python 中读取 excel 文件而不使用pandas or xlrd 我一直在尝试将结果转换为bytes to utf 8没有任何成功 xls 文件中的数据 colA colB colC spc 1D0 20190705
  • 字符串在换行符处拆分

    我在 MS Access 表单上有一个文本框 用户将从 Excel 电子表格中复制一列数字到其中 我需要获取此输入并将其用作参数来构建查询 我的代码看起来像这样 Dim data as variant Dim input as String
  • Python循环遍历Excel工作表,将工作表名称添加到列表中,然后连接所有

    我正在循环遍历 Excel 工作表并将它们附加到列表中 循环完成后 我使用 Pandas 连接到单个数据帧 我遇到的问题是将工作表名称添加到适当的列表中 infile is a filepath variable xls xlrd open
  • 有没有一种方法可以将这些列转换为数据格式?

    有没有办法将这些列转换为数据格式 gg mm aaaa 时 分 秒 日期 20220601 gt gt gt gt 2022 06 01 小时 3047 gt gt gt gt gt 00 30 47 时 分 秒 我对 B 列有严重问题 我
  • 溢出范围:将数组转换为与 @ 的交集值

    在 Excel 引入溢出范围之前 在 运算符 可以使用 将范围 转换 为单个值0 数值 或 字符串 但 并不完全相同 假设有一列正整数从B4向南 从D2向东有一行正整数 并且 A 列和 C 列以及第 1 行和第 3 行完全是空的 目的是将单
  • 如何在VBA中指定当前目录作为路径?

    我有一个启用宏的工作簿 我需要指定启用宏的文件所在的当前文件夹作为路径 我尝试设置 path ActiveWorkbook Path and path CurDir 但这些都不适合我 对此有什么想法吗 如果您想要的路径是运行宏的工作簿的路径
  • 如何使用apache poi检查Excel文件中的列是否隐藏

    我正在尝试使用 apache poi 解析 xls 文件 是否可以检查列是否隐藏 如何获取特定列的宽度 示例 根据帖子here https stackoverflow com questions 10529909 detecting hid
  • Excel VBA:声明通用对象与指定对象类型之间的区别

    我发现使用声明为的变量出现了意外的 至少对我来说 行为Object在 Excel vba 中 我试图从 html 页面中提取一些数据 所以我使用了这样的例程 sub Test Dim htmlPage As htmlDocument Thi
  • 如何解锁和锁定 Excel 单元格以运行宏

    我有一个电子表格 有两个按钮 从数据库检索记录 另一个按钮用于将更改从 Excel 上传到数据库 从数据库检索记录的宏如下 现在 在检索记录后 我希望用户仅编辑某些列 此处为从一月到场景的列 以便用户在更新这些单元格后可以单击更新按钮将更改
  • 使用 EPplus 在 Excel 中添加下拉菜单

    我需要帮助 如何使用 Epplus 在 Excel 中添加下拉列表 无需验证 我只需要把它添加到我的模板中 下拉列表中的记录不是动态的 using ExcelPackage p new ExcelPackage ExcelWorksheet
  • 使用java读取Excel工作表的单列

    我有一张 Excel 表格 我想编写一个方法 该方法将参数作为要读取的列号 并返回一个由该列中的所有数据组成的数组 然后将该列元素放置在 xml 工作表中 我怎样才能编写一个方法来做到这一点 使用 Apache POI 您可以在他们的使用页

随机推荐