2017-04-15 59 views
1

我想驗證兩列值 - 如果值爲真,那麼它應該顯示警報消息。驗證兩列值

Sub sal() 
Dim a As Long 
Dim b As Long 
a = Range("x3", Range("x3").End(xlDown)).Value 
b = Range("w3", Range("w3").End(xlDown)).Value 
If a = 100 And b <> " " Then MsgBox "already acheived" 
End If 
End Sub 

它顯示運行時錯誤13.

+0

如果你的錯誤是在'If'聲明,這是因爲你已經聲明'b'是數字的(鍵入'Long'),然後嘗試將它與''「'(一個'String')進行比較。你也有一個沒有相應的If的'End If',但這可能就是代碼被粘貼到問題中的方式(也就是'MsgBox'與'If'不同的行)。 – YowE3K

回答

1

您已經聲明A和B,只要和他們都應該持有多頭數據類型的一個值。

但在下面的代碼行...

a = Range("x3", Range("x3").End(xlDown)).Value 
b = Range("w3", Range("w3").End(xlDown)).Value 

您正在嘗試與多個單元格範圍的值分配給他們兩個。

你應該使用這樣的......

a = Range("x3").Value 
b = Range("w3").Value 

另外,作爲YowE3L提到,檢查變量b是這樣的...

b <> 0 
+1

當我在尋找錯誤時,我完全忽略了多單元格的範圍 - 看起來很棒! – YowE3K

+0

我錯過了你指出的其他兩個部分。所以這是一個完美的團隊工作。 :) – sktneer

+0

我懷疑單行-v-塊'If'問題可能只是在問題中,而不是在原始代碼中。 (在我編輯之前,問題中的最後一行最初是'End If End Sub',但是我發現並拆分了它,因爲這顯然是不可能的 - 因此另一行可能只是一個類似的問題。) – YowE3K