2015-08-19 4 views
0

Итак, у меня есть отчет панели инструментов, показывающий эффективность продаж на основе моего раскрывающегося списка с другого листа (Name Key). В ячейке «B266» он имеет общий объем продаж с текущего месяца. Я работаю над VBA, который создаст отчет в формате PDF и сохранит его, если будут выполнены следующие условия:VBA для создания PDF-файла для Excel-листов на основе критериев

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 условие ниже вашего 2 условия:

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 

Таким образом, код не будет создавать PDF, если B226 является 0 .

+0

Я хочу, чтобы код продолжал работать через список имен, просто пропускает те, где B226 равен 0, и не создает PDF. – user3666237

+0

Итак, вы не хотите, чтобы оба условия были в одном IF? – ManishChristian

+0

Да, например, пусть говорят, что первое имя в раскрывающемся списке - Альфред, b266 - 1000, создайте pdf, следующее имя - bryan, а b266 - 0, пропустив создание pdf, а следующее имя - carl и b266 - 15, создайте pdf – user3666237

0

Сложение и и утверждение и логика тест на B226 <> 0

If ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY").Range("C1") <> "TRUE" And ThisWorkbook.Sheets("INDIVIDUAL PERFORMANCE SUMMARY).Range("B226").value <> 0 Then 
Смежные вопросы