2013-09-22 96 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