Есть ли способ загрузить изображения из Excel и назвать его согласно данным в другой ячейке? - PullRequest
0 голосов
/ 25 января 2020

У меня есть Excel, где в столбце A могут быть или не быть изображения, а в столбце B есть числа. Я sh, чтобы загрузить эти изображения в папку и присвоить им имя в соответствии с соответствующей записью в столбце B.

Я пробовал следующий код, но он загружает простые белые изображения, и присвоение имен выполняется как изображение 1, изображение 2 и так далее.

Option Explicit
Public Sub ExportAllPics2()
  Dim shp As Shape
  Dim path As String: path = "C:\Images\"
  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) & ".png", FilterName:="png"
          .Delete
        End With
        cnt = cnt + 1
      End If
    Next
  End With
  Application.DisplayAlerts = True
End Sub

enter image description here

1 Ответ

0 голосов
/ 25 января 2020

Если изображения не занимают более 1 строки, вы можете использовать свойства .TopLeftCell и .BottomRightCell объекта shape .

For Each shp In .Shapes
  If shp.Type = msoPicture Then

    If shp.TopLeftCell.Row <> shp.BottomRightCell.Row Then
      MsgBox "Warning shape spans 2 rows at row " & shp.TopLeftCell.Row
    End If

   .. your existing code

      .Export Filename:=path & shp.TopLeftCell.Offset(0, 1) & ".png", FilterName:="png"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...