【问题标题】:Excel VBA Run-time error '13': Type mismatchExcel VBA 运行时错误“13”:类型不匹配
【发布时间】:2018-02-24 11:40:00
【问题描述】:

我不擅长 VBA,但突然之间,我开始收到此错误。如果您能找到错误所在,请告诉我。我很坚持这个。我确实到处搜索,发现很多类似的帖子,但解决方案似乎总是非常特定于代码。任何一位专家都将不胜感激。

这是我的代码:

Sub FindSimilar()
    Dim phrases As Range, phrase As Range
    Dim terms As Range, term As Range
    Dim matches As String
    Dim words() As String

    'ensure this has the correct sheet names for your workbook
    Set phrases = ThisWorkbook.Worksheets("Export").Range("B2:B3500")
    Set terms = ThisWorkbook.Worksheets("Topics").Range("D767:D967")

    For Each term In terms
        matches = ""
        words() = Split(term.Value)

        For i = 0 To UBound(words, 1)
        If Len(words(i)) > 2 Then
         Select Case words(i)
          Case "examplewords", "blacklist"
          Case Else
            For Each phrase In phrases
                If InStr(1, phrase.Value, words(i)) Then
                    matches = matches & phrase & "/"
                End If
            Next phrase
         End Select
        End If

我真的不知道为什么

运行时错误 13:类型不匹配

被抛出。

断点发生在以下几行:

        matches = ""

       Set terms = ThisWorkbook.Worksheets("Topics").Range("D773:D779")

       For i = 0 To UBound(words, 1)

【问题讨论】:

  • ...祈祷告诉哪里(哪一行)错误发生在哪里?
  • 没有意义,但您可以通过将"" 换成vbnullstring 来克服它吗?
  • matches 被声明为字符串,matches ="" 很好。您确定黄色突出显示的行是您单击“调试”时的那一行吗?
  • ... 你有 '确保这有你的工作簿的正确工作表名称' 即代码所在的工作簿?
  • 这不是我的建议。我说'重新启动(冷启动)计算机'。类似this.

标签: vba excel


【解决方案1】:

运行时错误“13”:在从工作表收集的大量值循环中途类型不匹配几乎总是由于遇到工作表错误代码。

Export!B2:B3500 或 Topics!D767:D967 中是否有任何工作表错误代码(例如 #N/A、#VALUE! 等)?

我找到了一个 #N/A 单元格。它不是作为错误出现,而是作为粘贴值出现:-(它现在可以工作了!

通过这些步骤,您可以快速定位一长列值(甚至整个工作表)中的任何工作表错误。

  1. 选择整列。如果要查看整个工作表,只需选择任何单个单元格。 2、点击F5然后点击特殊。
  2. 选择公式并仅选中错误。
  3. 点击确定。

工作表错误也可以通过以下一种或两种方式找到。

<range>.SpecialCells(xlCellTypeConstants, xlErrors)
<range>.SpecialCells(xlCellTypeFormulas, xlErrors)

【讨论】:

  • 我想添加一个快速简便的解决方案,即应用过滤器,然后按#N/A #VALUE!#¡DIV/0!#¡REF! 过滤。所有错误始终位于过滤器列表的底部,因此如果您的数据有数千行但只有 1 个错误,则应用过滤器并检查错误非常快,因为在过滤器列表中,所有错误都出现在底部的列表。 `
  • 好点。快速而肮脏地暴露所有错误。也许发布那个。我计划指出这个问答重复。哎呀,我会投票赞成它只是为了踢球和咯咯笑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多