繁体   English   中英

i = empty 我该如何解决这个问题?

[英]i = empty how can i solve this?

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

我试图理解你的逻辑并重写了代码:

Option Explicit

Sub test()
    Dim a As Integer
    Dim i As Long, j As Long
    Dim xRange As Range
    a = 0
    
    i = 4
    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
                    
                    Exit For
                      'i = j - 1
                End If
                
            Next j
            
                
    Next i

End Sub

如果您正在寻找选择的最小值,此代码应该可以解决您的问题

这种说法毫无意义

For i = 4 To i + 1

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

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

如果要停止循环,请使用Exit ForExit Do ,如果要结束 function 或子程序处理,请使用Exit FunctionExit Sub

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM