首页 > 解决方案 > i = empty 我该如何解决这个问题?

问题描述

Dim a As Integer
a = 0



For i = 4 To i + 1

    Set xRange = Sheets("sayfa4").Rows(i)

        For j = 1 To 10

            If Sheets("sayfa4").Cells(i, j) > 0 And Sheets("sayfa4").Cells(i, j) =  Application.WorksheetFunction.Min(xRange) Then
                a = a + 1
                Sheets("sayfa4").Cells(i, j).ClearContents
                
                Sheets("sayfa4").Cells(15 + a, 1) = i
                Sheets("sayfa4").Cells(15 + a, 2) = j
                
            
                  i = j - 1
            End If
            
        Next j
        
            
Next i

我没有收到任何错误或某些东西我无法执行它在excel表上没有任何反应你能帮我吗当我尝试使用F8时出现什么问题它显示“i = empty”我的主要问题是声明下一个我实际上,当我选择一个单元格(i,j)并打印它的值时,我的下一个 i 应该是 j 并且在我应该开始搜索 j 行的最小值之后,结果是下一个 i

标签: excelvba

解决方案


这种说法毫无意义

For i = 4 To i + 1

这是因为i未初始化或为零,因此循环实际上For i=4 to 1将被忽略。

如果您不知道要迭代多少次,请改用 a Do Loop。仅For用于固定迭代,不要更改循环内的迭代变量

如果你想停止循环使用Exit For,或者Exit Do如果你想结束函数或子程序处理使用Exit Function或者Exit Sub

要跳到 VBA 中的下一次迭代,您将使用If结构,因为它不像其他语言那样具有延续关键字。(感谢@BigBen)


推荐阅读