2013-07-10 4 views
0

하나의 시트 (이 경우 '테스트 시트')의 열 G에있는 하나의 셀의 값과 코드의 값을 일치시켜야하는 코드 프로젝트에서 작업하고 있습니다. 다른 시트의 B 열에있는 셀 (이 경우 '정보'). '정보'시트에서이 일치하는 행을 찾으면 일치하는 행의 C 열에서 정수 값을 검색해야합니다.런타임 오류 '13'VBA 형식 불일치

내 프로그램의 다른 부분에서 호출 할 수있는 함수에서이 코드를 구현하려고합니다. 여러 가지 방법으로 변수를 치수 지정하려고 시도했지만 주요 하위에서 함수를 호출 할 때 발생하는 유형 불일치로 인해 막혔습니다. 나는 매우 길을 잃고 좌절한다. 아무도 내가 잘못하고있는 것을 볼 수 있습니까?

주요 서브 전화 :

Sub AutoSend() 
    Dim Temp As Integer 
    Dim rng As Range 
    Dim r As Range 

    Set rng = Range("A2:I6") 

    For Each r in rng.Rows 'EDIT to more accurately reflect my code 
     Temp = FindHigh(Cells(r,7).Value) 'THROWS ERROR HERE 
    Next r 
End Sub 

함수 FindHigh라고 :

어쩌면
Function FindHigh(Key As String) As Integer 

    Dim Target 
    Dim Success As Integer 

    Success = 0 

    Sheets("Information").Select 

    Set Target = Columns(2).Find(Key, LookIn:=xlValues) 

    If Not Target Is Nothing Then 
     Sheets("Information").Cells(Target.row, 3).Select 
     Success = Rows(Target.RowIndex).Cells(Target.RowIndex, 3).Value 
    End If 

    Sheets("Test Sheet").Select 
    FindHigh = Success 

End Function 

답변

1

Temp = FindHigh(Range("R7").Value)

아니면 하위에 Temp = FindHigh(Cells(7,18))

+0

아하 나의 문제를 알아 냈습니다! 나는'셀 (r, 7) 대신'r.Cells (1,7)'을 써야했다. 고맙습니다! –

0

"자동 전송해야한다 "정의되지 않은 'r'을 사용하고 있습니다. ywhere

+0

죄송합니다. 분석을 더 간단하게하기 위해 일부 코드를 생략했습니다. r은 루프에서옵니다. 나는 원래 게시물을 적절하게 편집 할 것이다. 감사! –

0

시도해 볼 수 있습니다.

Sub AutoSend() 
    Dim Temp As Integer 
    Dim r As Integer 
    r = 1 'Row Number of the Row in column G that has the value you want to look up. 
    With WorksheetFunction 
    Temp = .IfError(.VLookup(Sheets("Test Sheet").Cells(r, 7).Value, _ 
        Sheets("Information").Range("B:C"), 2, False), 0) 
    End With 
End Sub 

당신이 찾고있는 값을 갖는 셀은 열 G에 하지, 또는 당신이보고 싶은, 또는 우리를 제공 할 가치를 보유하고 어떤 세포 우리에게 말하고 루프에서 오는 경우 루프의 코드가 더 나은 답변을 제공하는 데 매우 도움이됩니다.

+0

이것은 매우 도움이됩니다, 감사합니다! 이 코드를 구현할 때 오류가 발생합니다. 오류는 다음과 같습니다. worksheetfunction 클래스의 vlookup 특성을 가져올 수 없습니다. 왜 내가이 메시지를 듣고 있는지 아십니까? –

+0

모두 알아 냈어! 잘못된 워크 시트를 선택했습니다! 모든 도움을 주셔서 감사합니다! –