2013-09-22 99 views
-1

我正在製作一個搖滾紙剪刀的遊戲,並且我陷在得分代碼中。我想要的是,當某人獲勝時,得分會顯示在不同的工作表上,該工作表是將成爲記分牌的圖形的數據源。錯誤13「類型不匹配」如果

的代碼是:

If Worksheets("Game").Range("D5:E7").Value = "Rock" And Worksheets("Game").Range("D9:E11").Value = "Paper" Then Worksheets("Game Data").Range("F9").Value = Worksheets("Game Data").Range("F9").Value + 1 
If Worksheets("Game").Range("D5:E7").Value = "Rock" And Worksheets("Game").Range("D9:E11").Value = "Scissors" Then Worksheets("Game Data").Range("F8").Value = Worksheets("Game Data").Range("F8").Value + 1 
If Worksheets("Game").Range("D5:E7").Value = "Paper" And Worksheets("Game").Range("D9:E11").Value = "Scissors" Then Worksheets("Game Data").Range("F9").Value = Worksheets("Game Data").Range("F9").Value + 1 
If Worksheets("Game").Range("D5:E7").Value = "Paper" And Worksheets("Game").Range("D9:E11").Value = "Rock" Then Worksheets("Game Data").Range("F8").Value = Worksheets("Game Data").Range("F8").Value + 1 
If Worksheets("Game").Range("D5:E7").Value = "Scissors" And Worksheets("Game").Range("D9:E11").Value = "Rock" Then Worksheets("Game Data").Range("F9").Value = Worksheets("Game Data").Range("F9").Value + 1 
If Worksheets("Game").Range("D5:E7").Value = "Scissors" And Worksheets("Game").Range("D9:E11").Value = "Paper" Then Worksheets("Game Data").Range("F8").Value = Worksheets("Game Data").Range("F8").Value + 1 

當我運行它,我得到錯誤13類型不匹配。我不知道我做錯了什麼!誰能幫忙?

+1

請閱讀[關於](http://stackoverflow.com/about),請訪問[幫助中心](http://stackoverflow.com/help),特別是有關格式化的信息,請參閱[Stack Overflow問題清單] (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – pnuts

+1

如果你有一個指向涉及的單元格的對象(Range),你可以使你的代碼更具可讀性並且重複性更低。 –

+0

'Range(「D5:E7」)。Value'是一個數組,因此如果將它與字符串「Rock」進行比較,它會產生錯誤。 – matzone

回答

1

我猜你正在使用合併的單元格,因爲你的範圍引用了多個單元格。這導致您將一組數值與單個字符串進行比較,因此類型不匹配。如果是這種情況,則合併單元格的值將存儲在合併單元格的第一個單元格中,並且您可以嘗試爲第一個if語句(爲了使代碼更易於閱讀而添加的行連續_)顯示以下修改。

If Worksheets("Game").Range("D5").Value = "Rock" And _ 
Worksheets("Game").Range("D9").Value = "Paper" Then _ 
Worksheets("Game Data").Range("F9").Value = _ 
Worksheets("Game Data").Range("F9").Value + 1 

您將需要修改每一行以停止類型錯誤匹配錯誤。

+0

感謝您的迴應。是的,我正在使用合併單元格,是的,它的工作原理。再次感謝! – user2574508