Страницы: 1
RSS
Невозможно отобразить связанный рисунок (в прайсе)
 
Добрый день. Проблема следующая:
Программа формирует прайс лист и добавляет фото к позициям. Когда сохраняю в пдф проблем нет, но клиенты просят в эксель, но в итоге вместо рисунков видят "не удается отобразить связанный рисунок и т.д...". Вот макрос добавления рисунков:
Код
For i = 4 To Sheets("Price").Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Price ").Range(Cells(i, 2).Address).Select
Dim x As Range
Set x = Selection    'Sheets("Price ").Range(Cells(Selection.Row, 3).Address)
Sheets("Price ").Range(Cells(i, 3).Address).Replace What:="""", Replacement:="", LookAt:=xlPart, SearchOrder:=xlByRows   
imya = Sheets("Price ").Range(Cells(x.Row, 3).Address) 'имя позиции
If imya  <> "" Then
On Error Resume Next
With Sheets("Price ").Pictures.Insert(путь_к_папке_с_рисунками\" & imya  & ".jpg")
.ShapeRange.Height = 28 'ставим высоту рисунка
ширина  = .ShapeRange.Width
.Name = imya
End With
If Err Then
With Sheets("Price ").Pictures.Insert(путь_к_папке_с_рисунками/рисунок_отсутствует .jpg")
.ShapeRange.Height = 28 'ставим высоту рисунка
ширина = .ShapeRange.Width
.Name = imya
End With
End If
Sheets("Price ").Shapes.Range(Array(имя)).IncrementTop 2    'ставим рисунок чуть ниже, чтобы было видно границу ячейки
Sheets("Price ").Shapes.Range(Array(имя)).IncrementLeft (x.Width - ширина) / 2    'определяем ширину столбца и ставим рисунок посередине
End If
Next i 

Это не помогло:
Код
On Error Resume Next
Set Pic = RangePhoto.Worksheet.Shapes.AddPicture(FlName, msoFalse)
Изменено: Renat898 - 18.08.2015 11:35:30
 
Renat898, код не нужно выделять цветовым оформлением, для кода есть своя кнопка - <...>
 
Добрый день
На макрос, который не помог (с методом .AddPicture), можно посмотреть?
 
вообщем я неправильно использовал этот код из темы: http://www.excel-vba.ru/forum/index.php?topic=2790.0

подскажите, как его прописать в этом макросе:
Код
imya = Sheets("Price ").Range(Cells(selection.Row, 3).Address) 'имя позиции
On Error Resume Next
With Sheets("Price ").Pictures.Insert("Z:рисунки\" & imya  & ".jpg")
.ShapeRange.Height = 28 'ставим высоту рисунка
.name
End With

Изменено: Renat898 - 18.08.2015 13:12:42
 
Так попробуйте:
Код
Set Pic = Sheets("Price ").Shapes.AddPicture(FileName, LinkToFile, SaveWithDocument , Left, Top, Width, Height)
  • FileName — строка, задающая имя файла, на основе которого создается рисунок
  • LinkToFile — допустимые значения: True (рисунок связан с файлом, на основе которого создан) и False (в противном случае)
  • SaveWithDocument — допустимые значения: True(сохраняется рисунок с рабочей книгой) и False (в рабочей книге сохраняется связь с рисунком, а не сам рисунок)
  • Left, Top — координаты левого верхнего угла объекта
  • Width, Height — ширина и высота объекта
 
спасибо!
Страницы: 1
Наверх