簡體   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