2016-08-24 2 views
0

무엇이 잘못 되었나요? 다른 탭에서 A 열의 목록을 통해 실행되는 탭의 pdf 파일을 만들고 싶습니다. 한편, 열 CH의 값을 참조하여 값이 0보다 큰지 확인하고 특정 폴더에 저장하는지 확인합니다. 그렇지 않은 경우 다른 폴더에 저장하십시오.루프 내의 조건문

해결책을 찾지 못해 몇 시간 동안 붙어있어 도움을 주시면 대단히 감사하겠습니다. 감사!

코드 :

Sub Generate_PDF_Files() 
Application.ScreenUpdating = False 
Sheets("Table").Activate 
Range("A7").Activate 

Set r = Range("CH7:CH185") 
With ActiveSheet 
    For Each erange In .Range("CH7:CH185") 
     If erange.Value > 0 Then 
      Sheets("Att A").Select 
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
       "L:\Mike89\Violations\" & X & ".pdf", Quality:=xlQualityStandard, _ 
       IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False 
     End If 

     If erange.Value = 0 Then 
      Sheets("Att A").Select 
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ 
       "L:\Mike89\No Violations\" & X & ".pdf", Quality:=xlQualityStandard, _ 
       IncludeDocProperties:=True, IgnorePrintAreas:=False,OpenAfterPublish:=False 
     End If 

    Next 

    Do Until ActiveCell.Value = "STOP" 
     X = ActiveCell.Value 
     Range("DLR_NUM") = "'" & X 

     Sheets("Table").Activate 
     ActiveCell.Offset(1, 0).Activate 
    Loop 

End with 
End Sub 
+0

당신의 코드와 마찬가지로 중요한 것은,는' – litelite

+0

@litelite *와 * 적절한 들여 쓰기 With' 끝없는 (나는 편집 ;-) –

+0

당신은 더 나은 게시물을 거라고 승인 관련 시트의 몇 가지 관련 예제. 당신은 _ "A 열에있는 목록을 통해 _"를 쓰는 것에 대해 쓰고 있습니다. _ 나는 그 표식을 볼 수 없습니다. 게다가 루프의 끝까지 정의하기 전에'X'를 참조합니다. – user3598756

답변

0
Sub Generate_PDF_Files() 

    Dim c As Range, X, fName As String, shtAtt As Worksheet 

    Set shtAtt = Sheets("Att A") 

    For Each c In Sheets("Table").Range("CH7:CH185").Cells 

     X = c.EntireRow.Cells(1).Value 
     If X = "STOP" Then Exit For 

     c.Parent.Range("DLR_NUM") = "'" & X 

     fName = "L:\Mike89\" & IIf(c.Value = 0, "No Violations\", "Violations\") & X & ".pdf" 

     shtAtt.ExportAsFixedFormat Type:=xlTypePDF, Filename:=fName, _ 
         Quality:=xlQualityStandard, IncludeDocProperties:=True, _ 
         IgnorePrintAreas:=False, OpenAfterPublish:=False 

    Next c 

End Sub 
+0

감사합니다. 아마 뭔가 잘못 했어. "object_worksheet의 메서드 범위"가 실패했을 때 런타임 오류가 발생합니다. "시도 할 때 코드 내에서 shtAtt.Range ("DLR_NUM ") =" ' "& X"가 강조 표시됩니다. 디버그. – Mike89

+0

"Att A"시트에 그 이름의 범위가 있습니까? –

+0

다른 탭에서 값 목록을 만들고 데이터 유효성 검사를 사용하여 드롭 다운 목록 "DLR_NUM"을 호출했습니다. 이것은 "표"탭에 있고 "Att A"탭에는 없습니다. – Mike89