我试图检查一个范围内的不同值,然后在另一列中更改一个值,但是每次我这样做都会出错:
没有If的其他
thisParameterWillCompletelyChangeYourLife
答案 0 :(得分:5)
下划线具有误导性:
If .Range("C" & i).Value = "No Approval Required" Then _
.Range("F" & i).Value = ""
它看起来像If...Then...End If
块语法,但不是。 _
行的继续使得逻辑行的代码实际上是这样的:
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = ""
那是完全合法的。
您可以使用Else
子句继续执行相同的逻辑代码行:
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = "" Else ...
那仍然是合法的。
但是你不能做什么,是这样的:
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = ""
Else ....
因为Else
属于另一个语法表达式:上面的If
语句是完整的;下一个以Else
开头的语句必须是非法的,因为它没有If
语句。
如果您想在单独的代码行上使用Else
语句,则需要切换到 block语法-这意味着Then
关键字是{{ 1}}语句结束:
If
答案 1 :(得分:3)
您可以在两种语法结构之一中使用IF
语句:
一行:
If [this] Then [That]
多行:
If [This] Then [That] End If
多行代码可让您检查多个If
语句或使用ElseIf
。请注意,在一种衬纸版本中无法做到这一点:
If [This(1)] Then [That1] ElseIf [This(2)] Then [That2] ElseIf [That3] End If
您可以将IF
语句变成一个衬里,如下所示:
For i = 1 To 3000
With Sheets("Order Approvers")
If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = ""
End With
Next i
或者您可以使用如下所示的块版本:
For i = 1 To 3000
With Sheets("Order Approvers")
If .Range("C" & i).Value = "No Approval Required" Then
.Range("F" & i).Value = ""
End If
End With
Next i
或者您可以更新以使用Else
语句
For i = 1 To 3000
With Sheets("Order Approvers")
If .Range("C" & i).Value = "No Approval Required" Then
.Range("F" & i).Value = ""
ElseIf [What?] Then
'Do what?
End If
End With
Next i
答案 2 :(得分:2)
您在if语句的末尾使用了行继续符package com.tp468.dell.automatedfishpondmonitoringsystem;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MainActivity extends AppCompatActivity {
TextView Temperature;
DatabaseReference dRef;
String status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Temperature = (TextView)findViewById(R.id.textView);
dRef= FirebaseDatabase.getInstance().getReference();
dRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
status=dataSnapshot.child("Temperature").getValue().toString();
Temperature.setText(status);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}
。这会将下一条语句直接粘贴到_
语句。基本上,它和写作是一样的
If
当您将语句写成这样时,就不能使用If .Range("C" & i).Value = "No Approval Required" Then .Range("F" & i).Value = ""
(从技术上讲,可以,但是您必须将其放在同一行中,这是您不想要的... )
如果您还有其他条件要检查,则可以使用Else
,对于所有其他情况,可以使用ElseIf
。最后,您需要输入Else
所以,只要写
End If
答案 3 :(得分:1)
您需要使用If
关闭End If
语句。