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

VBA实现两列数据匹配比对并统计匹配次数的问题求助

现有代码的问题
  • 循环变量未初始化:i、j未设置初始值,VBA中数值型变量默认值为0,会直接引用不存在的第0行单元格,触发运行错误。
  • 单元格引用语法错误:[A" & i & "]的写法不合法,方括号引用仅支持固定单元格地址,不能和字符串拼接符&搭配动态生成行号。
  • 内层循环起始值错误:内层循环j从0开始,同样会访问无效的第0行,逻辑也不符合从第一行数据开始比对的需求。
修正后的代码
' 初始化外层循环变量,从第1行开始遍历A列
i = 1
Do While i <= 60
    ' 初始化内层循环变量,从第1行开始遍历I列
    j = 1
    Do While j <= 20
        If Range("A" & i).Value = Range("I" & j).Value Then
            Range("B" & i).Value = Range("B" & i).Value + 1
        End If
        j = j + 1
    Loop
    i = i + 1
Loop
更简便的替代方案

不需要写VBA代码,直接在B1单元格输入公式=COUNTIF(I$1:I$20,A1),下拉填充到B60即可实现完全相同的匹配计数效果,运行效率更高,也不会出现语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:36:01