2013-03-13 4 views
1

단추에 연결된 Visual Basic 루틴을 포함하는 Excel 파일을 업데이트해야합니다. 나는 빈 데이터와 실행에서 루틴을 방지하기 위해 노력하고 조기 복귀하고 싶어 :Visual Basic의 함수에서 반환

Sub FillProductDetail() 
    Dim wks As Worksheet 
    set wks = Worksheets("Product Detail") 

    Dim ProductToShow As String 
    ProductToShow = wks.Range("C4") 
    wks.Rows("5:1000")Delete Shift :=xlUp 

    If ProductToShow = "" Then 
     Return 
    End If 

    ..... many lines which take forever if ProductToShow is empty 

End Sub 

I 작동 If 문에서 함수의 나머지 부분을 포함하지만 모든 것이 들여 쓰기하는 방법을 알고를 더 오른쪽으로. 전에 Basic에서 Return 문을 보았습니다.

답변

1

당신은 서브 루틴

+0

고맙습니다. –

1

Exit Sub 을이 무슨 뜻입니까 사용해야합니까?

Option Explicit 

Sub FillProductDetail() 
    Dim wks As Worksheet 
    Set wks = ThisWorkbook.ActiveSheet 

    Dim ProductToShow As String 
    ProductToShow = wks.Range("C4") 
    wks.Rows("5:1000").Delete Shift:=xlUp 

    If ProductToShow = "" Then GoSub MyRoutine 
    Exit Sub 

MyRoutine: 
    MsgBox "Empty cell" 
    Return 
End Sub 
+0

실제로 GoSub가없는 경우 'If ... Then Exit Sub Endif'를 사용합니다. –

+0

셀이 비어 있으면 실행할 코드 줄이 많아서 라우팅 사용을 고려할 수 있습니다. –

+0

나는 함수의 나머지 부분이 빈 값으로 실행될 때 시간이 오래 걸리면 값을 항상 설정해야한다는 것을 분명히 알지 못했다. 나는 당신의 대답을 작동시키면서 upvote 하겠지만, 나는 아직 허용되지 않습니다. –