字符串数组上的 VBA“类型不匹配:需要数组或用户定义的类型”

2024-04-25

我有一个全局声明的动态字符串 DMA 数组。

Dim DMAs() As String

我 ReDim 数组并在 CreateArrayOf 函数中为其赋值,该函数的类型为 String(),返回 String() 类型的数组

DMAs = CreateArrayOf(Sites, 2, "", False) 

Public Function CreateArrayOf( _
    ByRef arrayFrom() As String, _
    Optional ByVal numOfChars As Integer = 2, _
    Optional ByVal filterChar As String = "", _
    Optional ByVal filterCharIsInteger As Boolean = False _
) As String()

Dim i As Integer, _
    j As Integer, _
    strn As Variant, _
    switch As Boolean, _
    strArray() As String

'numOfChars 2 for DMA with no filterChar
'numOfChars 3 for W with filterChar "W"
'numOfChars 3 for A with filterChar "A"
'numofChars 2 for D with filterChar "D"

ReDim strArray(LBound(arrayFrom) To LBound(arrayFrom))  'required in order to
'not throw error on first iteration

For i = LBound(arrayFrom) To UBound(arrayFrom)  'iterate through each site
switch = False

For Each strn In strArray 'iterate through the array to find whether the
'current site already exists
     If strn = Mid(arrayFrom(i), 1, numOfChars) And Not strn = "" Then
        switch = True
    End If
Next strn

If switch = False Then 'if it doesn't exist add it to the array
    ReDim Preserve strArray(1 To UBound(strArray) + 1)
    strArray(UBound(strArray) - 1) = Mid(arrayFrom(i), 1, numOfChars)
End If
Next i

CreateArrayOf = strArray 'return the new array
End Function

当我尝试将 DMA 数组传递给另一个函数 OutputAnArray 时

Private Sub OutputAnArray(ByRef arrayToOutput() As String)

Dim i As Variant
Dim x As Integer
x = 1
For Each i In arrayToOutput
    Cells(x, 6).Value = i
    x = x + 1
Next i

End Sub

我收到“类型不匹配:需要数组或用户定义的类型”。在整个过程中我只搞乱了字符串数组。

如果我获取 OutputAnArray 函数的内容并将其放入我调用它的父函数中,则一切都很好。

任何帮助表示赞赏。


我将所有字符串定义更改为变体

Private Sub OutputAnArray(ByRef arrayToOutput() As Variant)

罪魁祸首仍然在那里,所以经过大量尝试使其编译后,我从arrayToOutput参数并开始工作。

Private Sub OutputAnArray(ByRef arrayToOutput As Variant) 'fixed

令人困惑的是,在下面的函数定义中,需要 ()arrayFrom.

Public Function CreateArrayOf(ByRef arrayFrom() As Variant, _ ...

我真的不明白,如果有人有任何解释,我很想听听。

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

字符串数组上的 VBA“类型不匹配:需要数组或用户定义的类型” 的相关文章

随机推荐

  • NetworkX:翻转图

    有没有办法以相反的顺序生成图形 即我想生成垂直翻转的图形 或者如果我可以在绘制之前用一些 matplotlib 子例程翻转它 F e 我希望 357 和 358 位于顶部 1 6 位于底部 只需交换您的位置坐标即可 import netwo
  • Flexbox 不包裹弹性项目

    我正在尝试使用 Flexbox 为我的网站设置布局 inb4 我不关心IE 但由于某种原因 这些物品没有包装 http jsfiddle net EnUuA http jsfiddle net EnUuA section display w
  • 如何将 lib 中的 jar 包含到 Netbeans 中的项目 jar 文件中?

    我正在使用一些 apache HttpClient jar 所以我将它们放在项目的 lib 目录中 当 Netbeans 编译项目时 它会复制 lib 并生成项目 jar 到 dist 目录中 但是当我使用 webstart 运行项目时 我
  • MySQL,其中 JSON 包含空数组

    如何在 JSON 列中搜索空数组 假设我有一个config有时 JSON 等于的列 tier WHERE JSON CONTAINS config tier 1 or WHERE JSON CONTAINS PATH config one
  • Dictionary 的下拉列表不适用于所选值

    我正在尝试以这种方式绑定 MVC3 中的下拉菜单 Model public static Dictionary
  • ImageIcon 不适用于我

    我编写了非常简单的代码来显示葡萄的图标 但代码仍然没有向我显示任何内容 这是我的代码 import javax swing import java awt public class Code ImageIcon ii new ImageIc
  • 使用 libsoup 进行 HTTP POST

    我想使用 libsoup 执行一个简单的 POST 请求 我想要发送数据的网站的 api 只需要一个名为 内容 的字段 使用curl我这样做 curl si F content mycontent http mywebsite org ap
  • 我可以使用什么正则表达式来匹配以点十进制表示法表示的任何有效 IP 地址?

    我可以使用什么正则表达式来匹配以点十进制表示法表示的任何有效 IP 地址 if ip d 1 3 d 1 3 d 1 3 d 1 3 1 lt 255 2 lt 255 3 lt 255 4 lt 255 print valid n els
  • 如何使用 Jade 和 Node.js 迭代 JSON 数组

    所以我有这个 JSON 数组apiData被传递到视图作为data Backend router get function req res var data JSON stringify apiData res render gallery
  • 将 LINQ 序列中的项目发送到返回 void 的方法

    通常 当我处理 LINQ 序列时 我希望将每个项目发送到返回 void 的方法 从而避免 foreach 循环 但是 我还没有找到一种优雅的方法来做到这一点 今天 我写了如下代码 private StreamWriter sw privat
  • SimpleInjector 和 FluentValidationFactory

    我正在尝试自动化视图模型的验证 我知道我可以添加一个属性来指定我的验证 但有一个选项可以设置一个工厂来自动化所有这些 我查看了 这个答案 https stackoverflow com questions 9984144 what is t
  • Nodejs mongodb驱动的同步函数调用

    我有一个处理 mongodb 数据库的开源项目 我正在尝试创建一个查询数据库以检查条目是否存在的函数 问题是当if exists 返回 true 或 false 它会返回 undefined 因为 mongodb 驱动程序函数是异步的 该文
  • 将 pdf 文件转换为 tiff 文件的最佳方法 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • intellij 是否可以像在 Eclipse 中一样组织导入?

    我正在开发一个项目 所有团队成员都使用 Eclipse 而我是唯一的 IDEA 用户 这会因导入重新排列而产生大量噪音 eclipse导入的顺序是 Java Javax Org Com 其他一切按字母顺序排列 是否可以配置 IDEA 来遵循
  • 使用 Tkinter/Python 使用 ImageTk.PhotoImage 调整图像大小

    我正在尝试使用 Tkinter 制作幻灯片 但在调整图像大小时遇到 问题 它们仅显示为默认尺寸 而我想让它们全部统一 我可以使用 Image open 和调整大小来对单个图像执行此操作 但我无法弄清楚如何让它在迭代中工作 我将不胜感激的帮助
  • 为了让 WCF 传递大字符串,在哪里增加 maxStringContentLength ?

    好的 我已经设置并测试了一个不错的小型 WCF 服务 客户端创建一个字符串并将其传递给服务上的方法 然后服务将其保存为文件 与少量的测试数据完美配合 但是当我尝试它应该做的事情时 传递一些序列化的 net 对象 它崩溃了 并出现错误 格式化
  • 在 PHP 中打印货币数字格式

    我的页面中要显示一些价格值 我正在编写一个函数 它接受浮动价格并返回带有货币代码的格式化货币 val 例如 fnPrice 1001 01 应该打印 1 000 01 最简单的答案是number format http www php ne
  • 伊斯坦布尔封面报告对于摩卡测试是错误的(使用 Mongoose)

    我已经尝试在伊斯坦布尔为我的申请进行封面测试 一切似乎都工作正常 但有些方法被标记为未涵盖 并且我确信 由于日志 这些功能已被涵盖 这是我想测试的代码 使用 Mongoose var mongoose require mongoose Sc
  • 使用 PHPExcel 将 Excel 中的单元格按行和列合并在一起

    我需要使用以下命令按行合并 Excel xlsx 中的单元格并再次按列合并PHPExcel http phpexcel codeplex com downloads get 212184 我尝试了以下方法 sheet gt mergeCel
  • 字符串数组上的 VBA“类型不匹配:需要数组或用户定义的类型”

    我有一个全局声明的动态字符串 DMA 数组 Dim DMAs As String 我 ReDim 数组并在 CreateArrayOf 函数中为其赋值 该函数的类型为 String 返回 String 类型的数组 DMAs CreateAr