2013-04-11 4 views
1

Excel 매크로를 작성하고 "daf"라는 시트의 열을 통과하여 다른 시트의 셀과 비교하는 다음과 같은 섹션이 있습니다.Excel 매크로에서 시트의 셀 지정

For i = 2 To 75 
    If Range("the daf!C" + Trim(Str(i))) = Range("scratchpad!Q30") Then 
     notes = notes + Range("scratchpad!P30") 
     Exit For 
    End If 
Next 

문제는 "#Value!"결과를 생성한다는 것입니다. 문제는 "daf"를 "scratchpad"로 바꿀 때 오류가 발생하지 않기 때문에 시트 이름에 공백이 있음을 알 수 있습니다. 내가 말하는 말이 맞다면 시트의 이름에 공백이 포함되어있을 때 시트의 셀을 어떻게 참조 할 수 있습니까?

답변

2

사용

Sheets("the daf").Range("C" & i) 

대신

Range("the daf!C" + Trim(Str(i))) 

예 :

If Sheets("the daf").Range("C" & i).Value = Sheets("scratchpad").Range("Q30").Value Then

편집

여전히 사용중인 방법을 사용하려면 다음을 시도하십시오.

Range("'the" & " " & "daf'!C" & i) 
+0

감사합니다. 왜 내가 원래 사용했던 방식대로 사용할 수 있었는지 궁금하다. 또한 "C"& i 표기법을 표시해 주셔서 감사합니다. 지금은 시트를 검토하고 내가 한 일을 간소화 할 수 있습니다. –

+0

원래 사용하는 방식에 아무런 문제가 없습니다. 단순함을 위해 우리는 그런 식으로 사용하지 않습니다. 그러나 포스트에서 나중에 추가 한 편집을 보면 공백을 채워야한다는 것을 알게 될 것입니다. 따라서 실제로는 'Sheets()'메서드를 사용하는 것보다 복잡합니다. –

+0

실제로 내가 설명한 시트 메서드를 사용했지만 원래의 실수는 시트 이름 주위에 작은 따옴표를 포함하지 않는 것이 었습니다. 나는. 예를 들면 다음과 같아야합니다. Range (" 'the daf'! A1") –

관련 문제