У меня есть это выпадающее меню на листе 9, и мне нужно, чтобы макрос перебирал все элементы в раскрывающемся списке в ячейке E5 и сохраните копию Sheet10 в формате pdf с каждой различной информацией, указанной в раскрывающемся списке. Я не хотел сохранять их как каждый документ, поэтому было бы неплохо иметь код, который мог бы сохранить все документы в определенной папке с разными именами в соответствии с тем, что написано в ячейке E5. (этот процесс будет происходить каждый месяц, поэтому было бы хорошо, если бы каждый месяц он мог сохранять все документы в другой папке). Пока у меня есть код, который просто сохраняет лист 10, но я еще не мог понять петлю. У кого-нибудь есть код, который бы это сделал? :)Сохраните еще один лист в формате pdf, пока цикл выйдет из выпадающего меню, не показывая поле «сохранить как» для каждого элемента.
ответ
Я не уверен, но я думаю, что при изменении E5 он автоматически изменяет данные на Sheet10, и поэтому sheet1o будет отличаться для каждого элемента, выбранного в Sheet1.range («E5»). Если это так, то это сработает. В противном случае он по крайней мере покажет вам, как создать новую папку для текущего месяца и сохранить файл sheet10 в виде файлов PDF в этой папке.
Sub testDir()
Dim mnth As String
Dim yr As String
Dim dateString As String
Dim pathToDir As String
Dim myFolder As String
Dim myFile As String
Dim totalElements
Dim element As Range
Dim wb As Workbook
Dim activeSh As Worksheet
Dim aWB As Worksheet
Set activeSh = Sheets("Sheet9")
activeSh.Activate
Set aWB = Sheets("Sheet10")
' set up folder and path for current month
pathToDir = "C:\Temp\"
mnth = Left(MonthName(Month(Date)), 3)
yr = Year(Date)
dateString = yr & "_" & mnth
myFolder = pathToDir & dateString
If Not ifFolderExists(myFolder) Then
' Folder for current month does not exist yet
' Create folder "C:\Temp\2017_Feb" or whatever current year and month is
Beep
MkDir myFolder
End If
' Get items from dropdown list
Set totalElements = Evaluate(Range("E5").Validation.Formula1)
' This is where I'm fuzzy -
' If when you select each item, does that automatically change data on Sheet10?
' If so, do this
For Each element In totalElements
if element.name <> "" then
Sheet1.Range("E5").Value = element
myFile = myFolder & "\" & "_" & element & ".pdf"
ChDir myFolder
aWB.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
myFile, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End if
Next element
End Sub
Public Function ifFolderExists(folderPath As String) As Boolean
On Error Resume Next
ifFolderExists = (GetAttr(folderPath) And vbDirectory) = vbDirectory
On Error GoTo 0
End Function
спасибо! но его давая ошибку, индекс за пределами диапазона. –
Я положил лист1 вместо листа9. Извините, я этого не видел. Я отвечу на сценарий в ответе. Попробуй это сейчас. –
Спасибо вам большое! Это сработало! –
- 1. Новичок: Java Пока цикл не выйдет?
- 2. До тех пор, пока цикл не выйдет
- 3. Сохранить рабочий лист как PDF
- 4. Сохраните вывод в формате PDF
- 5. Сохраните несколько рабочих листов в формате PDF
- 6. Население выпадающего меню, показывая данные
- 7. Сохраните HTML5-страницу в формате PDF
- 8. Пока цикл работает только один раз внутри для каждого php
- 9. Поиск элемента из выпадающего меню
- 10. как сохранить регистрацию пользователя, пока пользователь не выйдет сам?
- 11. «До тех пор, пока» петля не выйдет из макроса до окончания цикла «для каждого».
- 12. Как использовать AppleScript, чтобы сохранить один лист Excel как PDF
- 13. Цикл цикла для каждого элемента заполнения документа
- 14. заявление перерыв не выйдет цикл
- 15. цикл для каждого элемента массива?
- 16. Сохранить reportlab файл pdf, не показывая его
- 17. Сохраните некоторые страницы из некоторых листов Excel в формате PDF
- 18. Выберите из выпадающего меню или добавьте еще
- 19. Сохраните класс как еще один частичный класс
- 20. Сохранить массив из выпадающего меню в Wordpress
- 21. Как я могу сохранить лист как PDF и сохранить папку
- 22. Как сделать цикл повторить еще один цикл?
- 23. Как добавить еще один цикл?
- 24. Цикл каждого элемента x
- 25. Сохраните график пирога в формате PDF
- 26. выпадающего падение вниз, показывая в других листах
- 27. Подождите, пока выйдет замок.
- 28. Покажите еще один div, пока он наводил
- 29. Изобретатель iLogic, сохраните все. PDF-файлы в PDF
- 30. Пока цикл только один раз
Ваш листок 9-элементный E5 выпадающий список - где источник данных для этого выпадающего списка? В идеале вы хотите, чтобы это был диапазон. Вам нужно написать VBA, который читает каждую ячейку этого диапазона источников и загружает его в E5. Вы завершаете весь цикл вокруг существующего кода save-as-a-pdf, но вставляете значение, загруженное в E5, в имя файла, которое оно сохраняет. Имейте это в виду, и если вы нажмете проблемы - напишите, что у вас есть, чтобы посмотреть/комментировать. – CLR
E5 получает информацию от другого листа, поэтому каждый раз, когда этот другой лист обновляется, выпадающий список также обновляется. –
Итак, ваша петля должна начинаться с чего-то вроде «Для каждого DropdownItem в Otherworkbook.Sheets (« OtherWorksheetname »). Range (« RangeofDropdown »). Text' – CLR