2013-09-22 3 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/help)를 방문하거나 [Stack Overflow question checklist]를 참조하십시오. (http://meta.stackexchange.com/questions/156810/stack-overflow-question-checklist) – pnuts

+1

관련된 셀을 가리키는 개체 (범위)가 있으면 코드를 더 읽기 쉽고 반복성이 떨어지게 만들 수 있습니다. –

+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