VBA程式如下,求各位大神指教了。
Private Sub 基于顆粒數計算過濾器精度()
Dim i As Integer
Dim X, X1, X2, B1, B2 As Double
If Range("D25").Value > 5 Then
Range("E4").Value = "<" & Range("I6")
Else
For i = 1 To 8
If Range("D" & "25+i") >= 5 Then
X1 = Range("I" & "5+i").Value
X2 = Range("J" & "5+i").Value
B1 = Range("D" & "24+i").Value
B2 = Range("D" & "25+i").Value
Exit For
Next i
X = (X1 - X2) * Log(5 / B1) / Log(B1 / B2) + X1
Range("E4").Value = X
End If
If i = 8 Then
Range("E4").Value = ">" & Range("J13")
End If
End Sub
uj5u.com熱心網友回復:
報啥錯也舍不得說uj5u.com熱心網友回復:
For i = 1 To 8next
之后 i=9
所以你的If i = 8 這個判斷總也進不去
這個只是邏輯問題,并不導致報錯。
uj5u.com熱心網友回復:
提示Next 沒有for
uj5u.com熱心網友回復:
For i = 1 To 8
If Range("D" & "25+i") >= 5 Then
X1 = Range("I" & "5+i").Value
X2 = Range("J" & "5+i").Value
B1 = Range("D" & "24+i").Value
B2 = Range("D" & "25+i").Value
Exit For
End If
Next i
uj5u.com熱心網友回復:
在EXIT FOR 下面加一行end if
uj5u.com熱心網友回復:
把處理的陳述句都去掉, 看看這代碼結構吧:If Range("D25").Value > 5 Then
.....
Else
For i = 1 To 8
If Range("D" & "25+i") >= 5 Then
.....
Exit For
Next i
.......
End If
兩個if, 一個end if
uj5u.com熱心網友回復:
按照邏輯應該是end if在next i 后面,否則回圈做一堆賦值沒意義
If Range("D25").Value > 5 Then
Range("E4").Value = "<" & Range("I6")
Else
For i = 1 To 8
If Range("D" & "25+i") >= 5 Then
X1 = Range("I" & "5+i").Value
X2 = Range("J" & "5+i").Value
B1 = Range("D" & "24+i").Value
B2 = Range("D" & "25+i").Value
Exit For
X = (X1 - X2) * Log(5 / B1) / Log(B1 / B2) + X1
Range("E4").Value = X
End If
Next i
uj5u.com熱心網友回復:
If Range("D25").Value > 5 Then
Range("E4").Value = "<" & Range("I6")
Else
For i = 1 To 8
If Range("D" & "25+i") >= 5 Then
X1 = Range("I" & "5+i").Value
X2 = Range("J" & "5+i").Value
B1 = Range("D" & "24+i").Value
B2 = Range("D" & "25+i").Value
Exit For
X = (X1 - X2) * Log(5 / B1) / Log(B1 / B2) + X1
Range("E4").Value = X
End if
Next i
End If
uj5u.com熱心網友回復:
靠,還是不對,exit for的位置不對
uj5u.com熱心網友回復:
Private Sub 基于顆粒數計算過濾器精度()Dim i As Integer
Dim X, X1, X2, B1, B2 As Double
dim pd as boolean
If Range("D25").Value > 5 Then
Range("E4").Value = "<" & Range("I6")
Else
For i = 1 To 8
pd=true
If Range("D" & "25+i") >= 5 Then
X1 = Range("I" & "5+i").Value
X2 = Range("J" & "5+i").Value
B1 = Range("D" & "24+i").Value
B2 = Range("D" & "25+i").Value
pd=false
Exit For
End If
Next i
if pd =true then
X = (X1 - X2) * Log(5 / B1) / Log(B1 / B2) + X1
Range("E4").Value = X
end if
If i = 8 Then
Range("E4").Value = ">" & Range("J13")
End If
End Sub
uj5u.com熱心網友回復:
注釋掉所有On Error Resume Next陳述句,在VBA IDE中運行,出錯后點擊除錯,游標會停在出錯的那條陳述句處,
或者
事先在懷疑可能有邏輯錯誤的陳述句處設定斷點,運行經過斷點時中斷,
此時可以在立即視窗中使用
?變數名
或
?函式名(函式引數)
或
程序名(引數)
輔助除錯。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/54312.html
標籤:VBA
上一篇:VBA編程讀取相片中的數字
