Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.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
Excel 将表另存为图像时发生VBA运行时错误438_Excel_Vba - Fatal编程技术网

Excel 将表另存为图像时发生VBA运行时错误438

Excel 将表另存为图像时发生VBA运行时错误438,excel,vba,Excel,Vba,我正在尝试保存excel表格的图像。我得到以下错误: 运行时错误“438”:对象不支持此属性或方法 这很奇怪,因为当我使用类似的代码来保存图表的图像时,它工作得非常好,但是我在编写代码来保存表的图像时遇到了一个错误 以下是导致上述错误的代码: Sub Table6() Dim objTable As TableObject Dim myTable As Table Set objTable = Sheets("Sheet6").TableObjects("Table6") Set myTabl

我正在尝试保存excel表格的图像。我得到以下错误: 运行时错误“438”:对象不支持此属性或方法

这很奇怪,因为当我使用类似的代码来保存图表的图像时,它工作得非常好,但是我在编写代码来保存表的图像时遇到了一个错误

以下是导致上述错误的代码:

Sub Table6()

Dim objTable As TableObject
Dim myTable As Table
Set objTable = Sheets("Sheet6").TableObjects("Table6")
Set myTable = objTable.Table
myFileName = "name.png"
On Error Resume Next
Kill ThisWorkbook.Path & "\" & myFileName
On Error GoTo 0
myChart.Export Filename:=ThisWorkbook.Path & "\" & myFileName, Filtername:="PNG"

End Sub
你知道是什么导致了这个问题吗

谢谢你的帮助

谢谢!
Nana

表的类型名称是
ListObject
,而不是“TableObject”。 可以将表的图像粘贴到临时图表对象中并将其导出

将任何范围导出为图像

以下是将任何范围导出为图像的常规例程:

Sub ExportRangeAsImage(rng As Range, destPath As String)
    Dim ch As ChartObject
    Set ch = rng.Parent.ChartObjects.Add(0, 0, rng.Width, rng.Height)
    rng.CopyPicture
    ch.Chart.Paste
    ch.Chart.Export destPath
    ch.Delete
End Sub
测试和使用

下面是一个导出表图像的示例:

Sub ExportTable6()
    ExportRangeAsImage Worksheets("Sheet6").ListObjects("Table6").Range, _
        ThisWorkbook.Path & "\Table6.png"
End Sub

myChart从未定义过,也没有任何值。同时,将宏命名为表名也不是一个好主意。表6无论如何都是一个笨拙的名称。VBA没有将表导出为图像。识别环境的正确方法是什么?我的目标是保存表的图像。谢谢。因为目前我还不知道VBA编码的基本知识——什么是我正确的编码方式?我是否只需将两个部件连接在一起并连接到我的原始代码?您只需将
导出范围图像
例程作为常规例程添加到代码中(将其添加到
模块1
)。然后,通过指定范围和文件路径,可以调用它以将任何范围导出为图像。第二个代码片段只是一个导出您的
表格6
的使用示例。嘿,a.S.H,谢谢您建议的方法,但我在网上搜索了另一个代码,找到了它,所以我使用了它。@NaneAmiryan,这很好,但您也应该尝试一下这个,有一天您需要将任何范围复制为图片,而不仅仅是表格。此外,我希望下次你在提问之前先搜索一下。