我正在尝试使用VBA将Excel 365图表批量导出为TIF。该代码在导出PNG时有效,但在创建TIF时,它会导出空的图像文件。
简化代码:
'Save the charts
MyFileName = ActiveWorkbook.Path & "" & "Chart.tif"
Worksheets("Charts").ChartObjects(1).Chart.Export _
Filename:=MyFileName, FilterName:="TIF"
当对TIF的引用更改为PNG时,这将按预期工作。
为什么选择TIF?目的是为了打印这些文件,所以它们需要分辨率。我已经在R中做到了这一点,但我也被要求在Excel中做到这一点。
我知道Excel 365可以以TIF格式保存图表(选择图表,右键单击,另存为图片…,另存类型有.TIF选项(。
我尝试将TIF的引用交换为TIFF,以防过滤器不一致。我还试图查找有效FilterName选项的列表。
我讨厌这个,但它有效。
Sub Test()
Dim Filename As String
Filename = "State_Chart.tif"
Sheets("Charts").ChartObjects("Chart 1").Activate
Application.SendKeys ("+{F10}")
Application.SendKeys ("S")
Application.SendKeys ("S")
Application.SendKeys ("{RETURN}")
Application.SendKeys (Filename)
Application.SendKeys ("{TAB}")
Application.SendKeys ("T")
Application.SendKeys ("{RETURN}")
End Sub
这会选择图表,然后发送键盘键打开菜单,选择另存为图片,输入文件名,选择tiff(使用S表示SVG(,然后按enter键关闭对话框。