[英]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 For
或Exit Do
,如果要结束 function 或子程序处理,请使用Exit Function
或Exit Sub
。
要跳到 VBA 中的下一个迭代,您将使用If
结构,因为它不像其他语言那样具有延续关键字。 (感谢@BigBen)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.