Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA将Excel图表导出为TIF_Excel_Vba - Fatal编程技术网

使用VBA将Excel图表导出为TIF

使用VBA将Excel图表导出为TIF,excel,vba,Excel,Vba,我正在尝试使用VBA将Excel 365图表批量导出为TIFs。该代码在我导出PNG时有效,但在创建TIFs时,它会导出空图像文件 简化代码: “保存图表 MyFileName=ActiveWorkbook.Path&\&Chart.tif 工作表Charts.ChartObjects1.Chart.Export_ Filename:=MyFileName,FilterName:=TIF 当对TIF的引用更改为PNG时,这将按预期工作 为什么是TIF?目的是打印这些,因此它们需要分辨率。我在R中

我正在尝试使用VBA将Excel 365图表批量导出为TIFs。该代码在我导出PNG时有效,但在创建TIFs时,它会导出空图像文件

简化代码:

“保存图表 MyFileName=ActiveWorkbook.Path&\&Chart.tif 工作表Charts.ChartObjects1.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 use S for SVG,然后按enter键关闭对话框。

我猜这是不可能的。几天前有人问了一个几乎相同的问题,除了SVG而不是TIF。我认为这两种格式在Chart.Export中都不起作用。您可以在这里看到可用的过滤器:Computer\HKEY\u LOCAL\u MACHINE\SOFTWARE\Microsoft\Shared Tools\Graphics filters\Export这很不幸,有点令人困惑。他们已经构建了该功能,如果让VBA调用该功能,他们会很高兴。嗯,VBA没有从MSFT获得足够的爱。@TimWilliams我的注册表没有这样的目录。搜索了图形过滤器,但没有找到Win 10的任何实例。