Excel ch下拉列表的成员,然后仅为该数据将sheet10另存为.pdf,然后删除sheet10并从下拉列表的第二个元素中获取数据,然后将其另存为单独的pdf,然后继续,直到为下拉列表中的所有项目创建单独的pdf?看起来你一次又一次地使用sheet10作为工作表来
Excel ch下拉列表的成员,然后仅为该数据将sheet10另存为.pdf,然后删除sheet10并从下拉列表的第二个元素中获取数据,然后将其另存为单独的pdf,然后继续,直到为下拉列表中的所有项目创建单独的pdf?看起来你一次又一次地使用sheet10作为工作表来,excel,vba,Excel,Vba,ch下拉列表的成员,然后仅为该数据将sheet10另存为.pdf,然后删除sheet10并从下拉列表的第二个元素中获取数据,然后将其另存为单独的pdf,然后继续,直到为下拉列表中的所有项目创建单独的pdf?看起来你一次又一次地使用sheet10作为工作表来保存为pdf,对吗?你的Sheet9单元格E5下拉列表-该下拉列表的数据源在哪里?理想情况下,您希望它是一个范围。您需要编写一些VBA来读取该源范围的每个单元格并将其加载到E5中。您将整个循环环绕现有的save-as-a-pdf代码,但将加载到
ch下拉列表的成员,然后仅为该数据将sheet10另存为.pdf,然后删除sheet10并从下拉列表的第二个元素中获取数据,然后将其另存为单独的pdf,然后继续,直到为下拉列表中的所有项目创建单独的pdf?看起来你一次又一次地使用sheet10作为工作表来保存为pdf,对吗?你的Sheet9单元格E5下拉列表-该下拉列表的数据源在哪里?理想情况下,您希望它是一个范围。您需要编写一些VBA来读取该源范围的每个单元格并将其加载到E5中。您将整个循环环绕现有的save-as-a-pdf代码,但将加载到E5的值插入到它另存为的文件名中。试一试,如果您遇到问题,请发表您的意见。E5从另一个工作表中获取信息,因此每次更新另一个工作表时,下拉列表也会更新。因此,对于Otherworkbook.Sheets(“OtherWorksheetname”).Range(“RangeofDropdown”)中的每个下拉项,您的循环需要以类似于
的内容开始.text
非常感谢。。它只是像以前一样保存了一个pdf文件。(VBA对我来说有点新,所以我有点挣扎..对不起)为了清晰-E5下拉列表有几个项目。你想浏览下拉列表中的所有项目,然后-这就是我迷路的地方。您是否将来自下拉列表中每个成员的数据放在sheet10上,然后将sheet10保存为.pdf格式仅用于该数据,然后删除sheet10并从下拉列表的第二个元素获取数据,然后将其保存为单独的pdf格式,一直保存到为下拉列表中的所有项目创建单独的pdf格式?你似乎一次又一次地使用sheet10作为工作表来保存为pdf格式,对吗?我将sheet1而不是sheet9。对不起,我没看到。我将更改答案中的脚本。现在再试一次。您好:)宏工作正常,但它正在文件夹上创建一个空的pdf模板,因为下拉列表E5从另一个逐渐更新的工作表中获取数据,因此下拉列表E5中的某些项为空。因此,宏将该0解释为一个值,并生成一个空pdf模板。你知道我怎么做“如果E5不是空的,只生成pdf/0”?再次非常感谢你!!可能是因为您的下拉列表中有一个空元素。尝试使用类似于“If element.name”“then”语句的语句。我调整了上面的代码。我把表1改为表9。对不起,我没看到。我将更改答案中的脚本。现在再试一次。您好:)宏工作正常,但它正在文件夹上创建一个空的pdf模板,因为下拉列表E5从另一个逐渐更新的工作表中获取数据,因此下拉列表E5中的某些项为空。因此,宏将该0解释为一个值,并生成一个空pdf模板。你知道我怎么做“如果E5不是空的,只生成pdf/0”?再次非常感谢你!!可能是因为您的下拉列表中有一个空元素。尝试使用类似于“If element.name”“then”语句的语句。我调整了上面的代码。
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