2016-10-13 2 views
0

"정보"시트의 범위 내에서 활성 시트에 지정된 값을 찾을 수있는 매크로를 만드는 데 문제가 있습니다. 우리가 범위에없는 셀의 값이 다음은 "값은 찾을 수 없습니다"라는 나에게 메시지 상자를 제공한다면 나는 다음과 같은했지만 그것은 작동하지 않습니다 :지정된 범위의 지정된 셀 값을 찾은 다음 VBA를 선택하여

Sub testrot() 
    Dim i As String 
    Dim srchrng As Range 

    Sheets(ActiveSheet.Name).Select 
    i = Cells(2, 5) 
    Sheets("Information").Select 
    Set srchrng = Range("j8:j17").Find(what = i) 
    If Not srchrng Is Nothing Then 
     MsgBox "Not Found" 
    End If 
End Sub 

의 셀 (2,5) 내 활성 시트는 예를 들어 # 16이고 범위 (j8 : j17)는 # 16, # 17 등 다른 문자열 목록입니다.

나는 모든 조언을 주셔서 감사합니다.

감사합니다.

답변

0

당신은 내가 stri을 변경 .Select/.Activate

또한
Sub testRot2() 
Dim str As String 
Dim srchRng As Range 
With Worksheets(ActiveSheet.Name) 
    str = .Cells(2, 5).Value 
    Set srchRng = .Range("J8:J17").Find(what:=str) 
    If srchRng Is Nothing Then 
     MsgBox "Not found" 
    End If 
End With 
End Sub 

, 메모를 피하려고. 이것은 일반적으로 iLong/Integer 루핑으로 보는 개인적인 선택입니다. 당신은 그것을 유지할 수 있습니다 i, 그냥 그것을 언급 할 생각. 또한 Find(what:=str)에 필요한 콜론을 유의하십시오.

+0

'Worksheets (ActiveSheet.Name)'은 'ActiveSheet'와 같습니다. –

+0

@BruceWayne이 작업은 MsgBox를 얻는 데는 효과적이지만 셀을 선택하기위한 분노가있는 "정보"탭은 참조하지 않습니다. str 치의 범위 내 sheet1 탭의 값이 16 인 셀 (2,5)이 있는데 범위 내의 '정보 탭'에서 선택하고 싶습니다. 'Sheets ("Information") 설정을 시도했는데, 설정 코드 앞에 선택하지만 인식하지는 않습니다. 의견 있으십니까? – deejaay

관련 문제