2015-08-19 30 views
0

因此,我有一个仪表板报表,显示基于从另一个表单中选择的下拉选择(名称键)的销售业绩。在Cell“B266”中,它具有从当月起的总销售额。如果满足以下条件,我正在创建一个将创建PDF报告并保存它的VBA:VBA为基于标准的Excel表单创建PDF

1.在名称键下拉菜单中查找它并不表示“排除”(我已排除对于未包括在报告中的销售人员)
2.如果在报表为(单项业绩摘要)且下拉地点为$ A $ 7的工作表中选择该值,则报表上的单元格b266不是0.

如果满足这两个条件,则创建pdf并保存,如果不跳到选择中的下一个单元格。我有以下代码:

Sub PDF_Generator() 

Dim cell As Range 
Dim wsSummary As Worksheet 
Dim counter As Long 

Set wsSummary = Sheets("INDIVIDUAL PERFORMANCE SUMMARY") 

For Each cell In Worksheets("NAME KEY").Range("$H2:$H60") 
    If cell.Value <> "Exclude" Then 
    'progress in status bar 
    counter = counter + 1 
    Application.StatusBar = "Processing file: " & counter & "/1042" 
    If ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY").Range("C1") <> "TRUE" Then 
    counter = counter + 1 
    Application.StatusBar = "Processing file: " & counter & "/1042" 
    With wsSummary 
     .Range("$A$7").Value = cell.Value 
     .ExportAsFixedFormat _ 
       Type:=xlTypePDF, _ 
       Filename:=ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY").Range("J1").Value & _ 
     "\" & cell.Value & ".pdf", _ 
       Quality:=xlQualityStandard, _ 
       IncludeDocProperties:=True, _ 
       IgnorePrintAreas:=False, _ 
       OpenAfterPublish:=False 
    End With 
    End If 
    End If 
Next cell 

Set wsSummary = Nothing 
End Sub 

我还是很新的VBA请帮助这将节省我很多时间。

+0

你没有说什么是失败/不工作。 – ManishChristian

+0

昨天你不问这个/类似吗? http://stackoverflow.com/questions/32081548/how-to-make-my-automated-pdf-creator-skip-drowdown-selections-where-a-certain-ro – findwindow

+0

是的,我没有得到回应我重新问了我真的需要帮助。 @ Nelly27281它仍然只是为每个下拉选择创建PDF,并且只承认“排除”,但是如果B266的值为0,则不是。 – user3666237

回答

0

编辑(基于评论)

再添加一个IF低于你的第二条件的条件:

If ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY").Range("C1") <> "TRUE" Then 
    If (sheet.range("B226").value <> 0) Then 
     'your code to create PDF 
    End If 
End If 

这样,如果B226为0的代码不会创建PDF

+0

我想通过名称列表继续运行代码,只跳过B226为0的地方,并且不创建PDF。 – user3666237

+0

所以你不希望两个条件在一个IF? – ManishChristian

+0

是的,例如,假设下拉列表中的名字是Alfred,b266是1000创建pdf,下一个名字是bryan,b266是0跳过创建pdf,下一个名字是carl和b266是15创建pdf – user3666237

0

添加和AND语句和逻辑测试B226 <> 0

If ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY").Range("C1") <> "TRUE" And ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY).Range("B226").value <> 0 Then