Jes*_*mon 6 charts vba worksheet refer
我正在尝试编写一个小函数,它接受一个文件路径(工作簿保存在哪里),targetpath(将保存pdf的地方),以及excel中的一串选项卡名称(管道(|)分隔).
该函数的用户不必输入一串选项卡名称(它是可选的),如果没有,我想选择所有可见选项卡并打印它们.如果用户在单独的工作表中有50个图表并且不想写"Chart1 | Chart2 | ...."之类的字符串,则会出现这种情况.
码:
For Each WSO.Name In WBO.Worksheets
strSheets = strSheets & WSO.Name & "|"
Next WSO
strSheets = Left(strSheets, Len(strSheets) - 1)
arraySheets() = Split(strSheets, "|")
WBO.Sheets(arraySheets()).Select
WBO.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
strFilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
Run Code Online (Sandbox Code Playgroud)
For Each循环有两个问题:它不会抓取任何纸张,例如"Chart1",它只会抓取诸如"Sheet1"之类的纸张.此外,它将抓取隐藏的工作表,以便当我尝试选择它们时,我得到一个越界错误.
我不知道图表表格是否与常规表格不同,或者为什么还会选择隐藏表格.
For Each循环有两个问题:它不会抓取任何纸张,例如"Chart1",它只会抓取诸如"Sheet1"之类的纸张
图表和工作表是两个不同的集合.
试试这个:
Sub Demo()
Dim oWs As Worksheet
Dim oCs As Chart
For Each oWs In ActiveWorkbook.Worksheets
Debug.Print oWs.Name
Next
For Each oCs In ActiveWorkbook.Charts
Debug.Print oCs.Name
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19057 次 |
| 最近记录: |