这是我第一次尝试编码,所以我真的不知道这段代码是否使用了正确的方法来写。希望有人能帮我实现这个If Else的编码。
这是我目前的代码。
Sub Categorisation()
For Each Category In Range("A3", "C3", "E3", "I3", "M3", "Q3")
If Not IsEmpty(Range("A3").Value) Then
Call Cornersonly_lengthwise_rownumbers
ElseIf Not IsEmpty(Range("C3").Value) Then
Call Cornersonly_breadthwise_rownumbers
ElseIf Not IsEmpty(Range("E3").Value) Then
Call Cornerscentre_lengthwise_rownumbers
ElseIf Not IsEmpty(Range("I3").Value) Then
Call Cornerscentre_breadthwise_rownumbers
ElseIf Not IsEmpty(Range("M3").Value) Then
Call Cornerscentreedges_lengthwise_rownumbers
ElseIf Not IsEmpty(Range("Q3").Value) Then
Call Cornerscentreedges_breadthwise_rownumbers
End If
Next Category
End Sub
你只是尝试第一个条件,如果它是空的,将跳过其他条件。如果你想检查所有的语句,你需要这样做。
Option Explicit
Sub Categorisation()
'ThisWorkbook refers to the workbook containing the code.
With ThisWorkbook.Sheets("ChangeThis")
If Not IsEmpty(.Range("A3")) Then Cornersonly_lengthwise_rownumbers 'arguments (comma separated)
If Not IsEmpty(.Range("C3")) Then Cornersonly_breadthwise_rownumbers 'arguments (comma separated)
If Not IsEmpty(.Range("E3")) Then Cornerscentre_lengthwise_rownumbers 'arguments (comma separated)
If Not IsEmpty(.Range("I3")) Then Cornerscentre_breadthwise_rownumbers 'arguments (comma separated)
If Not IsEmpty(.Range("M3")) Then Cornerscentreedges_lengthwise_rownumbers 'arguments (comma separated)
If Not IsEmpty(.Range("Q3")) Then Cornerscentreedges_breadthwise_rownumbers 'arguments (comma separated)
End With
End Sub
如果你调用的函数有参数,你需要在调用时提供参数。此外,你应该完全引用你的范围(a With
块是一个简单的方法,因为你只需要在范围前面使用".")