excel vba:将多个 excel 表导出到其指定的 jpg 文件中

excel vba:将多个 excel 表导出到其指定的 jpg 文件中

我正在研究一个 excel vba 命令,将多个 excel 表导出到其指定的 jpg 文件。

我的一个 Excel 工作簿中有 16 个工作表,最好将每个工作表导出为 jpg 格式。

我有以下代码,用于遍历所有工作表并创建 16 个 jpg 文件。但是,excel 似乎只捕获活动的工作表。假设“Sheet1”处于活动状态,则整个 16 个 jpg 文件将显示“Sheet1”内的任何内容,而不显示“Sheet2”或“Sheet3”等上的任何内容。

Sub exportpic()

Dim WS As Worksheet, Inpt As Worksheet
Dim rgExp As Range
Dim CH As ChartObject

Set Inpt = Sheets("Input")
Set rgExp = Range("B5:M60")

    For Each WS In ThisWorkbook.Sheets
        If Not WS.Name = "Input" Then
            rgExp.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
            Set CH = WS.ChartObjects.Add(Left:=rgExp.Left, Top:=rgExp.Top, Width:=rgExp.Width, Height:=rgExp.Height)
            CH.Chart.ChartArea.Select
            CH.Chart.Paste
            CH.Chart.Export "C:\Users\User1\Desktop\Umbilical\" & WS.Name & ".jpg"
            CH.Delete

        End If
    Next WS

End Sub

有人能帮我看看如何正确捕获/导出每张表到其指定的 jpg 文件中吗?非常感谢您对上述内容的帮助。

首先十分感谢。

答案1

只是为了不出现这个问题未回答 - 没有答案,问题在于rgExp不包括WS

而不是改变:

rgExp.CopyPicture并且WS.Range("B5:M60").CopyPicture根本不使用 rgExp 变量。

您需要更改:

set rgExp = Range("B5:M60")set rgExp = WS.Range("B5:M60")

rgExp这是为了以防您需要在其他地方使用。

相关内容