0
私は一連のデータを持っており、それに応じてTEまたはLEエッジかどうかを判断する必要があります。私は以下のコードでまとめようとしたいくつかの条件があります。 コードは動作していますが、空白が残っています。これは、特定の条件が考慮されていないことを意味します。複数の "ifとelse if" VBAコードを改善するには
具体的には、私はそれはこの1つだと思う:
ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"
は、それがすべてのこの場合はとのElseIfの問題だが、私はそれへの解決策を見つけることができませんでしたね。
ご提案がありましたら教えてください。ありがとうございました。
Sub edge()
On Error Resume Next
Dim lastRowIndex As Integer
Dim firstRowIndex As Integer
Dim MyString As String
lastRowIndex = ActiveSheet.UsedRange.Rows.Count
MyString = Application.ThisCell.Address
firstRowIndex = Range(MyString).Select
For i = firstRowIndex To lastRowIndex
If i Mod 2 <> 0 Then
If Range("A" & i).Value = Range("A" & i + 1).Value Then
If Range("G" & i).Value > Range("G" & i + 1).Value Then
If Range("H" & i).Value = "0" Then Range("N" & i).Value = "TE"
ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
**ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"**
End If
ElseIf Range("G" & i).Value < Range("G" & i + 1).Value Then
If Range("H" & i).Value = "0" Then Range("N" & i).Value = "LE"
ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"
End If
ElseIf i Mod 2 = 0 Then
If Range("A" & i).Value = Range("A" & i - 1).Value Then
If Range("G" & i).Value > Range("G" & i - 1).Value Then
If Range("H" & i).Value = "0" Then Range("N" & i).Value = "TE"
ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"
ElseIf Range("G" & i).Value < Range("G" & i - 1).Value Then
If Range("H" & i).Value = "0" Then Range("N" & i).Value = "LE"
ElseIf 0.01898 < Val(Range("G" & i).Value) < 0.02149 Then Range("N" & i).Value = "LE"
ElseIf Val(Range("G" & i).Value) > 0.02149 Then Range("N" & i).Value = "TE"
End If
End If
End If
Next
End Sub