2016-08-24 44 views
0

我在做什么错?我想创建一个标签的pdf文件,该标签在不同的标签中通过列A中的列表运行。同时,我希望它引用列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

您的代码缺少一个'结束With' – litelite

+0

@litelite *和*正确的缩进,同样重要的是(我批准了编辑;-) –

+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