2014-06-22 83 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