2014-06-22 109 views
0

您好我有以下代码:如果语句来选择一个值

If Numcolyo = Even Then 
    .StartPoint.y = BuWidth/2 + ccFacoy 
    Else 
    .StartPoint.y = BuWidth/2 
    End If 

但它不会做什么,我希望它做的事。代码虽然工作。例如说,如果Numcolyo=4那么我想首先声明是真实的:StartPoint.y = BuWidth/2 + ccFacoy

如果Numcolyo=3那么我想第二个说法是真实的:StartPoint.y = BuWidth/2

。我写什么错?感谢任何形式的帮助:)

+2

提示:始终在代码顶部使用Option Explicit。这迫使你声明所有的变量。这样,你就可以发现Even在VBA中不是关键字。 – Haris

+0

嗨哈里斯,我怎么写到我的代码?我是VBA编程的新手。谢谢。 – RiMa

+0

@哈里斯。对不起,现在我明白你的意思了,下次我会这样做:)谢谢。 – RiMa

回答

5

不要以为在VBA中有EVEN关键字。用模运算符来返回除法运算的余数:

If Numcolyo Mod 2 = 0 Then 
    .StartPoint.y = BuWidth/2 + ccFacoy 
Else 
    .StartPoint.y = BuWidth/2 
End If 

如果除以2之后没有余数,则为偶数。

+0

在Excel VBA中有一种EVEN方法,所以我错了,从某种意义上说。但我不认为这就是你想要实现的。 – VBlades

+0

嗨VBlades,你的解决方案** Mod 2 = 0 **工作得很好。感谢您的帮助。我会在8小时后发布解决方案,因为我的代表目前不会允许我。再次谢谢你。 – RiMa

+0

不客气,无后顾之忧。 – VBlades