Vba 将范围导出为图像时循环浏览工作表

Vba 将范围导出为图像时循环浏览工作表,vba,excel,Vba,Excel,我有下面的VBA代码,可以将一系列单元格导出到jpeg中,并将其导出到指定的文件夹中。我想让它在一个工作簿中循环浏览所有工作表 我需要帮助在所有打开的工作簿中循环此代码。我相信我需要: 将WS设置为工作表,然后设置一个If语句,插入下面的代码,结束If语句,然后在最后放置下一个WS以便它实际循环。我的问题是,当我尝试为该工作簿中的每个WS合并if语句时,总是出现91错误。Sheets如果不是WS.Name=“Sheet2”,则使用下面的代码 以下代码一次在一个工作表中工作 Sub ExportA

我有下面的VBA代码,可以将一系列单元格导出到jpeg中,并将其导出到指定的文件夹中。我想让它在一个工作簿中循环浏览所有工作表

我需要帮助在所有打开的工作簿中循环此代码。我相信我需要: 将WS设置为工作表,然后设置一个If语句,插入下面的代码,结束If语句,然后在最后放置下一个WS以便它实际循环。我的问题是,当我尝试为该工作簿中的每个WS合并if语句时,总是出现91错误。Sheets如果不是WS.Name=“Sheet2”,则使用下面的代码

以下代码一次在一个工作表中工作

Sub ExportAsImage()
Dim objPic As Shape
Dim objChart As Chart
Dim i As Integer
Dim intCount As Integer
'copy the range as an image
Call ActiveSheet.Range("A1:F2").CopyPicture(xlScreen, xlPicture)
'remove all previous shapes in the ActiveSheet
intCount = ActiveSheet.Shapes.Count
For i = 1 To intCount
    ActiveSheet.Shapes.Item(1).Delete
Next i
'create an empty chart in the ActiveSheet
ActiveSheet.Shapes.AddChart
'select the shape in the ActiveSheet
ActiveSheet.Shapes.Item(1).Select
ActiveSheet.Shapes.Item(1).Width = Range("A1:F2").Width
ActiveSheet.Shapes.Item(1).Height = Range("A1:F2").Height
Set objChart = ActiveChart
'clear the chart
objChart.ChartArea.ClearContents
'paste the range into the chart
objChart.Paste
'save the chart as a JPEG
objChart.Export ("C:\Users\------\Desktop\Test\" & Range("B2").Value &     ".jpg")
'remove all shapes in the ActiveSheet
intCount = ActiveSheet.Shapes.Count
For i = 1 To intCount
    ActiveSheet.Shapes.Item(1).Delete
Next i
End Sub

将此添加到您的模块:

Sub MAIN()
    Dim sh As Worksheet
    For Each sh In Sheets
        sh.Activate
        Call ExportAsImage
    Next sh
End Sub

然后运行它。(无需修改您的代码)

将此添加到您的模块中:

Sub MAIN()
    Dim sh As Worksheet
    For Each sh In Sheets
        sh.Activate
        Call ExportAsImage
    Next sh
End Sub

然后运行它。(无需修改您的代码)

请编辑您的帖子以包含所有代码。请编辑您的帖子以包含所有代码。