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

解决下拉选择后拖拽填充单元格时VBA出现ERROR 13类型不匹配问题

解决ERROR 13: Type Mismatch错误的方案

错误原因

拖拽填充时,Target是多单元格区域,你代码里直接调用Target.Value会返回数组(而非单个单元格的值),和空字符串比较、或者作为VLookup的查找值时,就会触发类型不匹配错误。

修改后的代码

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    Dim selectedVal As Variant
    Dim selectedNum As Variant
    
    ' 关闭事件触发,防止修改单元格时反复触发Worksheet_Change
    Application.EnableEvents = False
    
    ' 遍历Target中的每个单元格(处理多单元格拖拽填充的情况)
    For Each cell In Target
        selectedVal = cell.Value
        ' 跳过空单元格
        If selectedVal = "" Then GoTo NextCell
        
        selectedNum = Application.VLookup(selectedVal, Worksheets("Bestuurders").Range("Omschrijving"), 2, False)
        
        ' 找到匹配项则替换为缩写
        If Not IsError(selectedNum) Then
            cell.Value = selectedNum
        End If
        
NextCell:
    Next cell
    
    ' 恢复事件触发
    Application.EnableEvents = True
End Sub

关键改动说明

  • 新增For Each cell In Target循环,逐个处理拖拽填充涉及的每个单元格
  • 加入Application.EnableEvents = False/True,避免修改单元格时反复触发事件导致的异常
  • 用GoTo NextCell跳过空单元格,逻辑更清晰

内容的提问来源于stack exchange,提问作者JB-acc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 22:00:54