excel vba: para exportar várias planilhas do excel para seu arquivo jpg designado

2

Estou trabalhando em um comando excel vba para exportar várias planilhas do excel para o arquivo jpg designado.

Eu tenho 16 planilhas em uma pasta de trabalho do Excel e seria melhor exportar cada folha para o formato jpg.

Eu tenho o código abaixo funcionando, para percorrer toda a planilha e criar 16 arquivos jpg. No entanto, parece que o Excel está apenas capturando a planilha ativa. Digamos que, se "Sheet1" estiver ativo, todos os 16 arquivos jpg mostrarão o que estiver dentro da "Sheet1" e não mostrar o que estiver lá em "Sheet2" ou "Sheet3", etc.

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

Alguém pode me ajudar, por favor, qual é a maneira correta de capturar / exportar cada folha em seu arquivo jpg designado? Aprecie verdadeiramente a sua gentil assistência no que precede.

Muito obrigado antecipadamente.

    
por zenisler 19.11.2013 / 07:38

1 resposta

0

Apenas para que essa pergunta não apareça sem resposta - sem respostas , o problema foi a definição de rgExp não incluindo WS

Em vez de mudar:

rgExp.CopyPicture to WS.Range("B5:M60").CopyPicture e não usando a variável rgExp.

Você mudaria:

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

Isso é para o caso de você precisar usar rgExp em outro lugar.

    
por 24.12.2013 / 17:18