Есть файл с каталогом товаров - в нем каждому товару соответствуют картинки, которые надо выгрузить и привязать имя файла к нужной строке. Я вытаскивал картинки несколькими способами - при помощи надстройки которая сохраняет все картинки с листа и сохраняя лист как веб-страницу, и переименовывая исходный xlsx файл в zip или rar архив - однако нужного порядка в именах файлов не было - вместо сквозной нумерации наблюдается хаос какой-то, например, картинка в ячейке A2 - и самая первая в списке товаров - оказывается под именем image33... и тд...В каталоге 400 товаров и вручную прописывать каждому товару соответствующее имя файла картинки это просто безумно долго...каталог подготавливается для csv импорта на сайт...Вобщем помогите с решением...есть ли какой макрос сохраняющий картинки по ячейке или в порядке нахождения на листе?
Есть файл с каталогом товаров - в нем каждому товару соответствуют картинки, которые надо выгрузить и привязать имя файла к нужной строке. Я вытаскивал картинки несколькими способами - при помощи надстройки которая сохраняет все картинки с листа и сохраняя лист как веб-страницу, и переименовывая исходный xlsx файл в zip или rar архив - однако нужного порядка в именах файлов не было - вместо сквозной нумерации наблюдается хаос какой-то, например, картинка в ячейке A2 - и самая первая в списке товаров - оказывается под именем image33... и тд...В каталоге 400 товаров и вручную прописывать каждому товару соответствующее имя файла картинки это просто безумно долго...каталог подготавливается для csv импорта на сайт...Вобщем помогите с решением...есть ли какой макрос сохраняющий картинки по ячейке или в порядке нахождения на листе?vladFo
Roman777, сам файл с картинками 8 МБ, я его обрезал до 8 товаров - но все равно 200 КБ - а форум ругается не более 100... меньше нет смысла... поэтому сделал скриншот каталога - это начало...
Roman777, сам файл с картинками 8 МБ, я его обрезал до 8 товаров - но все равно 200 КБ - а форум ругается не более 100... меньше нет смысла... поэтому сделал скриншот каталога - это начало...vladFo
У картинки есть свойтсво Замещающий текст - описание - там водимо старое имя файла - у меня получилось его вытащить в соседнюю ячейку при помощи макроса который я нашел в интернете - а дальше не знаю что делать...как можно сохранить файлы по этому свойству?
У картинки есть свойтсво Замещающий текст - описание - там водимо старое имя файла - у меня получилось его вытащить в соседнюю ячейку при помощи макроса который я нашел в интернете - а дальше не знаю что делать...как можно сохранить файлы по этому свойству?vladFo
Roman777, Можно и так...если это возможно.. просто я почти не разбираюсь в VBA, что-то пытаюсь сейчас читать, но задача срочная и пока я въеду в тему пройдет уйма времени...Поэтому решил спросить совета у знатоков)
Roman777, Можно и так...если это возможно.. просто я почти не разбираюсь в VBA, что-то пытаюсь сейчас читать, но задача срочная и пока я въеду в тему пройдет уйма времени...Поэтому решил спросить совета у знатоков)vladFo
Sub kartinki_von() Dim i As Long, i_n As Long Dim obj As shape Dim NWS As Worksheet, AWS As Worksheet Set AWS = ActiveSheet Set NWS = ActiveWorkbook.Sheets.Add i_n = AWS.Cells(Rows.Count, 2).End(xlUp).Row For i = 2 To i_n For Each obj In AWS.Shapes If obj.Type = 13 Then If AWS.Cells(i, 2).Top = obj.BottomRightCell.Top Then obj.Copy With NWS.ChartObjects.Add(0, 0, obj.Width, obj.Height).Chart .ChartArea.Border.LineStyle = 0 .Paste .Export Filename:=ActiveWorkbook.Path & "\" & AWS.Cells(i, 2) & ".jpg", FilterName:="JPG" .Parent.Delete End With End If End If Next obj Next i Application.DisplayAlerts = False NWS.Delete Application.DisplayAlerts = True End Sub
[/vba] Пока сохраняет в корень папки, где лежит файлик, если надо, можно сделать, чтобы он в корне создавал отдельную папку и туда сохранял.
vladFo, Вот так сойдёт? [vba]
Код
Sub kartinki_von() Dim i As Long, i_n As Long Dim obj As shape Dim NWS As Worksheet, AWS As Worksheet Set AWS = ActiveSheet Set NWS = ActiveWorkbook.Sheets.Add i_n = AWS.Cells(Rows.Count, 2).End(xlUp).Row For i = 2 To i_n For Each obj In AWS.Shapes If obj.Type = 13 Then If AWS.Cells(i, 2).Top = obj.BottomRightCell.Top Then obj.Copy With NWS.ChartObjects.Add(0, 0, obj.Width, obj.Height).Chart .ChartArea.Border.LineStyle = 0 .Paste .Export Filename:=ActiveWorkbook.Path & "\" & AWS.Cells(i, 2) & ".jpg", FilterName:="JPG" .Parent.Delete End With End If End If Next obj Next i Application.DisplayAlerts = False NWS.Delete Application.DisplayAlerts = True End Sub
[/vba] Пока сохраняет в корень папки, где лежит файлик, если надо, можно сделать, чтобы он в корне создавал отдельную папку и туда сохранял.Roman777
vladFo, Благодарить нужно не меня, а создателей, администраторов и модераторов этого и подобных сайтов, которые позволяют нам получать подобные знания))). Рад что смог помочь).
vladFo, Благодарить нужно не меня, а создателей, администраторов и модераторов этого и подобных сайтов, которые позволяют нам получать подобные знания))). Рад что смог помочь).Roman777
Много чего не знаю!!!!
Сообщение отредактировал Roman777 - Суббота, 21.11.2015, 18:14
Пока сохраняет в корень папки, где лежит файлик, если надо, можно сделать, чтобы он в корне создавал отдельную папку и туда сохранял.
Доброе утро! Пробую воспользоваться вашим макросом, но у меня съезжают названия присвоенные картинкам и приходится переименовывать вручную, Вы не могли бы проверить , может где ошибка в макросе. Вот на скрине видно, что костюм в файле отличается с присвоенным номером на картинке на 1 порядковый номер
Пока сохраняет в корень папки, где лежит файлик, если надо, можно сделать, чтобы он в корне создавал отдельную папку и туда сохранял.
Доброе утро! Пробую воспользоваться вашим макросом, но у меня съезжают названия присвоенные картинкам и приходится переименовывать вручную, Вы не могли бы проверить , может где ошибка в макросе. Вот на скрине видно, что костюм в файле отличается с присвоенным номером на картинке на 1 порядковый номерMinerva76
Добрый день, а что не так? и при чем тут фотошоп? Скажите что надо прикрепить, я это сделаю, скрин прикрепила, что бы было видно, что я не голословна, что нумерация неверная
Добрый день, а что не так? и при чем тут фотошоп? Скажите что надо прикрепить, я это сделаю, скрин прикрепила, что бы было видно, что я не голословна, что нумерация невернаяMinerva76