错误13“类型不匹配”为if

时间:2013-09-22 20:29:31

标签: excel vba excel-vba

我正在制作一个摇滚纸剪刀游戏,我对这个得分代码感到困惑。我想要的只是当有人获胜时,得分显示在不同工作表的表格上,该工作表是作为记分板的图表的数据源。

代码是:

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 个答案:

答案 0 :(得分:1)

我猜你正在使用合并的单元格,因为你的范围引用了多个单元格。这会导致您将值数组与单个字符串进行比较,从而导致类型不匹配。如果是这种情况,那么合并单元格的值将存储在合并单元格的第一个单元格中,您可以尝试针对您的第一个if语句显示以下修改(添加行继续_以使代码更易于阅读)。 / p>

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

您需要修改每一行才能停止类型失配错误。