我正在研究一个 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
这是为了以防您需要在其他地方使用。