MS Excel - 创建每个工作表的屏幕截图(使用脚本?)

MS Excel - 创建每个工作表的屏幕截图(使用脚本?)

是否可以截取 Excel 中所有工作表的屏幕截图(例如通过脚本)?

看这个例子。我想以某种方式将绿色矩形中的数据导出为 JPG(或其他格式),并对所有工作表执行此操作。

我找到了这个解决方案:excel vba:将多个 excel 表导出到其指定的 jpg 文件中看起来不错,但有设置范围Range("B5:M60")。是否可以更动态地做到这一点?

答案1

我稍微修改了提到的代码以执行以下操作。

循环遍历所有工作表

要求使用输入范围来截取屏幕截图

将 Sheetname.jpg 保存在 C:\Temp 文件夹中。文件名为 Sheetname,扩展名为 .jpg

请注意,这不会捕获任何嵌入的对象,例如插入的形状或图片等。它只会捕获您为每个工作表输入的单元格范围的屏幕截图。此外,没有严格的验证。如果您只是取消输入,代码将导致运行时错误。

代码如下。请检查这是否符合您的要求。原始代码位于这篇 SU 帖子

Sub exportpic()

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


   For Each WS In ThisWorkbook.Sheets
            WS.Activate
            Set rgExp = Application.InputBox(prompt:="Select Input Range", Type:=8)
            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:\Temp\" & WS.Name & ".jpg"
            CH.Delete


    Next WS

End Sub

相关内容