将多行图像从excel行保存到计算机

我的公司正试图从excel(每个在自己的行)出口800图像到计算机上的文件夹。 我们希望每个文件的名称与从中拉出的行相同(1.png,2.png等)。

我已经检查过这个脚本,但到目前为止,我只能看到一个关于从URL中提取图片的脚本。 我不太熟悉excel,因为我喜欢。

只要我们可以有每个图像的本地副本,可以很容易地识别我们从哪一行拉他们,那么这是一个成功,不pipe方法。

我们正在这样做,以便我们可以批量导入/上传到AirTable。

下面的示例链接:这只有1个样本,但在整个文档上有超过800多行。

https://drive.google.com/file/d/0B8klLazhe0NTMWZZS01kRkNHZ1U/view?usp=sharing

我感谢任何可能的帮助。 谢谢,

我必须做同样的事情。 这是我用过的一个改编。 我假设你的照片是在第一张,如果不改变它。 你也应该改变path到你想要保存的所有图像:

Option Explicit Public Sub ExportAllPics() Dim shp As Shape Dim path As String: path = "C:\Temp\" Dim cnt As Integer: cnt = 1 Application.DisplayAlerts = False With Sheets(1) For Each shp In .Shapes If shp.Type = msoPicture Then shp.Copy With Charts.Add .Paste .Export Filename:=path & CStr(cnt) & ".jpg", FilterName:="jpg" .Delete End With cnt = cnt + 1 End If Next End With Application.DisplayAlerts = True End Sub 

这与其中一个注释中提供的链接类似,它设置图表,将图像复制到图表并将图表导出为jpeg文件(这是我设法使其工作的唯一方式 – 可能是某人否则会发布一个解决scheme,将图像直接复制到文件中)。 设置的图表是用于导出的临时图表,并立即删除。 显示警报必须被禁用,否则会popup每个图表删除的消息框。

编辑:

以下是上述的一个变种。 每个图片被复制(临时到单元格A1),缩放,复制到剪贴板(之后,A1中的临时图片被删除),从剪贴板添加到新的清除图表,然后导出:

 Option Explicit Public Sub ExportAllPics2() Dim shp As Shape Dim path As String: path = "C:\Temp\" Dim cnt As Integer: cnt = 1 Application.DisplayAlerts = False With Sheets(1) For Each shp In .Shapes If shp.Type = msoPicture Then shp.Copy .Range("A1").Select .Paste With Selection .Height = 600 .Width = 400 .Copy .Delete End With With Charts.Add .ChartArea.Clear .Paste .Export Filename:=path & CStr(cnt) & ".jpg", FilterName:="jpg" .Delete End With cnt = cnt + 1 End If Next End With Application.DisplayAlerts = True End Sub 

如果工作表内的每张图片的高宽比都可以,那么应该可以通过locking纵横比来缩放到合适的大小。 不幸的是,我使用的工作簿有扭曲的尺寸的图片,因此我将高度/宽度设置为标准尺寸的原因 – 结果是大多数图片显示适合有一些例外。