简单函数中的奇怪输出-Excel VBA

简单函数中的奇怪输出-Excel VBA,vba,excel,Vba,Excel,我在Excel VBA中有这个简单的函数 Public Function ubi() As Integer Dim i As Integer For i = 7 To 10 If IsNumeric(Cells(35, i).Value) Then ubi = i End If Next ubi = i End Function 如您所见,i的值应该是7或8或9或10。但是,当我在Excel工作表中测试该函数时,我发

我在Excel VBA中有这个简单的函数

Public Function ubi() As Integer
   Dim i As Integer
   For i = 7 To 10
       If IsNumeric(Cells(35, i).Value) Then
           ubi = i
       End If
   Next

   ubi = i

End Function
如您所见,
i
的值应该是
7
8
9
10
。但是,当我在Excel工作表中测试该函数时,我发现
ubi()=11


那么,我的代码中的错误源可能是什么呢?

外删除
ubi=i
,以便下一个
循环

当这是真的时,代码继续运行:
For i=7到10
每次点击此
Next
时,它都是递增的。当i增加到11时,循环退出-但i已设置为11。

尝试删除
ubi=i
之外的
For…Next
循环?此外,您调用的函数中没有任何条件?根据您的建议,我发现错误已修复。但是我仍然不知道为什么ubi()=11出现在前面的代码中。是的,我调用该函数只是为了检查某些单元格的值。当这是真的时,代码继续运行:
For I=7到10
每次点击此
Next
都会递增。当我增加到11时,循环退出——但我已经设置为11。根据您的建议,我看到错误已经修复。但是我仍然不知道为什么ubi()=11出现在前面的代码中。@CreamStat因为变量I增加到11,这就是For循环停止的原因;)我只是想说。。。“下一步”命令进入下一步(本例中为11)。@Chrismas007将其添加到您的答案中以使其完整。(别忘了接受答案;)这正是我所怀疑的。谢谢