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

Excel VBA出现“Next without For”错误的问题咨询

Excel VBA出现“Next without For”错误的问题咨询

你好呀!我来帮你排查这个VBA代码里的问题~

首先咱们拆解报错的核心原因:你代码里的If...Else结构和For循环的嵌套语法写错了,导致VBA识别不了Next对应的For在哪里,另外还有个判断查找结果的小问题,我一步步给你说明:

  1. 判断查找结果的错误:你用If rgSource <> 0 Then是不对的,当Find方法没找到匹配内容时,rgSource会返回Nothing(不是数值0),所以正确的判断逻辑应该是If Not rgSource Is Nothing Then。

  2. For和If的嵌套语法错误:你把Next i直接写在了Else:后面,这完全打乱了语法结构——Next必须和For一一对应,而且要放在End If的外面,不能嵌套在Else分支里。

给你修正后的代码,你可以直接测试:

Dim failure() As Variant
failure = Array("Fault Number", "Failure Number", "FAILURE_ID", "Fault No.", "FMS")
Debug.Print failure(1)
' Get the range from the worksheet
Dim rgSource As Range
Dim i As Long

For i = 0 To UBound(failure) ' 这里建议用UBound(failure)代替固定的5,适配数组实际长度
    Set rgSource = wksource.Worksheets(1).Cells.Find(failure(i), SearchOrder:=xlRows)
    If Not rgSource Is Nothing Then
        ' 找到匹配项后可以在这里添加你的业务逻辑
        Exit For
    End If
Next i ' Next要放在End If外面,和For对应

另外补充:你用Debug.Print验证数组元素的方法是对的,那部分代码完全没问题,报错就是语法结构的问题~

备注:内容来源于stack exchange,提问作者Aravind Duppada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 11:23:06