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

为何VBA在If语句不成立时无法继续循环?运行时错误13排查

解决VBA运行时错误13(类型不匹配)问题

错误原因

你的代码中,当Filter工作表BK列的单元格内容不是文本类型(比如包含错误值、数字、布尔值)时,直接和字符串"For Processing"做相等比较会触发类型不匹配错误——不同数据类型无法直接进行相等判断。

修复方案

方案1:转换为字符串后再比较

将单元格值转换为字符串类型,再和目标字符串比较,从根源避免类型不匹配:

Sub Breakdown()
    Dim Filter As Worksheet
    Set Filter = ThisWorkbook.Sheets("Filter")
    Dim Breakdown As Worksheet
    Set Breakdown = ThisWorkbook.Sheets("Breakdown")

    Dim counter As Integer
    Dim lr As Integer
    Dim pastecounter As Integer

    lr = Filter.Range("B" & Application.Rows.Count).End(xlUp).Row
    pastecounter = 8

    For counter = 8 To lr
        ' 转换为字符串后再比较,兼容非文本类型单元格
        If CStr(Filter.Range("BK" & counter).Value) = "For Processing" Then
            ' 去掉冗余的Select/Activate操作,直接通过对象引用完成复制粘贴
            Filter.Range("BM" & counter & ":BN" & counter).Copy _
                Destination:=Breakdown.Range("A" & pastecounter)
            pastecounter = pastecounter + 1
        End If
    Next counter
End Sub

方案2:加入错误处理跳过异常单元格

如果BK列存在无法转换的错误值(比如#N/A、#VALUE!),可以开启错误捕获,跳过出错的判断继续循环:

Sub Breakdown()
    Dim Filter As Worksheet
    Set Filter = ThisWorkbook.Sheets("Filter")
    Dim Breakdown As Worksheet
    Set Breakdown = ThisWorkbook.Sheets("Breakdown")

    Dim counter As Integer
    Dim lr As Integer
    Dim pastecounter As Integer

    lr = Filter.Range("B" & Application.Rows.Count).End(xlUp).Row
    pastecounter = 8

    For counter = 8 To lr
        On Error Resume Next ' 临时开启错误捕获,跳过出错的判断
        If Filter.Range("BK" & counter).Value = "For Processing" Then
            Filter.Range("BM" & counter & ":BN" & counter).Copy _
                Destination:=Breakdown.Range("A" & pastecounter)
            pastecounter = pastecounter + 1
        End If
        On Error GoTo 0 ' 关闭错误捕获,恢复默认错误处理逻辑
    Next counter
End Sub

额外优化说明

  • 移除了代码中的Select和Activate操作,直接通过工作表对象引用单元格,既提升运行效率,又避免因工作表切换导致的意外错误。
  • 使用Copy Destination:=语法直接指定粘贴目标,简化复制粘贴的代码流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 21:00:12