根据@Miles 和@Siddarth Rout 给出的示例,我刚刚创建了这个变体。需要注意的是,这是针对跟踪用户反馈的应用程序的后端,需要以不同的方式针对各种受众进行细分。当我们等待开发人员构建应用程序的报告端时,我正在以 .csv 格式从 SQL 下载数据,然后在 Excel 中处理其中的废话,然后提供27个单独的图表和图形(即将成为 28如果我们能让最终的用户组上线!)
我浏览并命名了每个图表,我需要调用结果文件,这样我就可以将图形上传到应用服务器,覆盖前一周的图表,自动(对于最终用户)更新报告。
由于文件名需要保持完全相同,命名图表最有意义,所以我再也不需要触及那部分了。(直到今天这样做,我一直在复制每个图表,粘贴到 Paint,然后另存为 PNG,并保存前一周的文件,这样我就可以点击旧的,它会自动将该名称分配给另存为过程。找到上面的代码和一种使它更流畅的方法将每周为我节省大约 30 分钟并消除 27 个可能的手动错误......相当不错的投资!如果我能做到......一年前?)
' Ctrl-Shift-A to run
Sub ExportChart()
Dim WS As Excel.Worksheet
Dim SaveToDirectory As String
Dim objChrt As ChartObject
Dim myChart As Chart
SaveToDirectory = ActiveWorkbook.Path & "\"
For Each WS In ActiveWorkbook.Worksheets
WS.Activate 'go there
For Each objChrt In WS.ChartObjects
objChrt.Activate
Set myChart = objChrt.Chart
' Change from above: using ChartObject.Name to individually name each exported PNG file
myFileName = SaveToDirectory & objChrt.Name & ".png"
On Error Resume Next
Kill SaveToDirectory & WS.Name & Index & ".png"
On Error GoTo 0
myChart.Export Filename:=myFileName, Filtername:="PNG"
Next
Next
MsgBox "Eeeaaagle!!"
End Sub