gpt4 book ai didi

excel - 将所有图表导出为 PNG

转载 作者:行者123 更新时间:2023-12-05 00:34:41 25 4
gpt4 key购买 nike

我正在尝试将我的 Excel 文件中的所有图表导出为 PNG 图像。这些图表未嵌入工作表中,而是在创建时作为新工作表移动

由于不熟悉 VBA 或 office 宏,我曾尝试根据我在网上找到的代码示例将一些东西串在一起,但没有成功。

这是我尝试过的方法,它可能适用于工作表中嵌入的图表,但不适用于独立图表:

Private Sub ExportChartsButton_Click()
Dim outFldr As String
Dim ws As Worksheet
Dim co As ChartObject

outFldr = GetFolder(ActiveWorkbook.Path)
For Each ws In ActiveWorkbook.Worksheets
For Each co In ws.ChartObjects
co.Export outFldr & "\" & ws.Name & ".png", "PNG"
Next
Next
End Sub

单击按钮时,似乎什么也没有发生。

如果我用 MsgBox co.ChartObjects.Count 替换内部循环,我会为每个非图表工作表得到一个 0 弹出窗口,所以我很明显不是遍历正确的对象(因此,没有图表,所以什么也不会发生)。

那么,如何遍历未嵌入工作表中的图表?

最佳答案

我找到了一个解决方案。我不得不使用 ActiveWorkbook.Charts 而不是 .Worksheets

Private Sub ExportChartsButton_Click()
Dim outFldr As String
Dim wc As Chart
Dim co As ChartObject

outFldr = GetFolder(ActiveWorkbook.Path)
If outFldr = "" Then
MsgBox "Export Cancelled"
Else
For Each wc In ActiveWorkbook.Charts
wc.Export outFldr & "\" & wc.Name & ".png", "PNG"
Next
End If
End Sub

为了记录,GetFolder() 定义为:

Function GetFolder(strPath As String) As String
Dim fldr As FileDialog
Dim sItem As String
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
With fldr
.Title = "Select folder to export Charts to"
.AllowMultiSelect = False
.InitialFileName = strPath
If .Show = True Then sItem = .SelectedItems(1)
End With
GetFolder = sItem
Set fldr = Nothing
End Function

非常欢迎提出意见/建议。

关于excel - 将所有图表导出为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8040695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com