|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
03.05.2012, 07:00 | #1 |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Зациклить процесс вставки изображений на лист
Добрый день, уважаемые форумчане!
Макрос вставляет поочередно изображения на лист по определенным координатам. Вот кусок кода: znach1 = Range("D1").Value znach2 = Range("D2").Value znach3 = Range("D3").Value Sheets("Изображения").Select ActiveSheet.Pictures.Insert("D:\Выв од на печать\Изображения\" & znach1 & ".JPG").Select Selection.ShapeRange.IncrementLeft (-42.25) Selection.ShapeRange.IncrementTop (-50.75) ActiveSheet.Pictures.Insert("D:\Выв од на печать\Изображения\" & znach2 & ".JPG").Select Selection.ShapeRange.IncrementLeft (-14.25) Selection.ShapeRange.IncrementTop (-50.75) ActiveSheet.Pictures.Insert("D:\Выв од на печать\Изображения\" & znach3 & ".JPG").Select Selection.ShapeRange.IncrementLeft (13.25) Selection.ShapeRange.IncrementTop (-50.75) Пример приведен для вставки первых трех изображений, но никогда не меньше 10. Это первая очередь изображений. Имена рисунков берутся из ячеек столбца D начиная с первой и до конца. Количество их заранее не известно, но всегда кратно 10 (т.е. 10, 20, 30 и т.д.). Вторая очередь вставляемых изображений должна вставляться по именам, которые берутся из ячеек столбца E также начиная с первой и до конца. Ну и третья очередь - это одно и то же изображение, но вставляемое такое количество раз, сколько и предыдущие. Очередность необходимо соблюсти, так как изображения накладываются одно на другое. Вот теперь вопрос: В связи с тем, что заранее не известно сколько будет подставляться изображений, но зная, что их на листе всегда 10, как организовать цикл этого процесса? Грубо говоря, подставили 10 изображений первой очереди по именам из ячеек из столбца D, подставили 10 изображений второй очереди по именам из ячеек столбца E, поставили 10 изображений третьей очереди с постоянным именем, сохранили лист с изображениями в формат PDF и перешли к следующим вставкам и сохранениям. Так как, заранее известно, что количество изображений кратно 10, то цикл должен повторяться для каждых 10 имен ячеек. Почему именно для каждого десятка? Потому что существует жесткое требование по координатам вставки изображений и они расчитаны для одного листа. Фуух, может путано немного, видно ночь бессонная сказывается. Заранее спасибо. Буду рад любому совету. |
03.05.2012, 21:45 | #2 | |
Форумчанин
Регистрация: 21.10.2011
Сообщений: 433
|
Вот нашел такой код подстановки изображений по именам ячеек на листе:
Option Explicit Sub SignSheet(ws As Worksheet) 'Находит ячейки, содержащие "Подпись:", берет фамилию из 5-й ячейки вправо, 'ищет фамилию на листе "Подписи" и подставляет сотв. картинку Dim c, s As Shape, p As Range, pa$ With ws Set p = .Cells.Find("Подпись:", , xlValues, xlWhole) If p Is Nothing Then Exit Sub pa = p.Address Do Set c = Sheets("Подписи").Range("B:B").Find (p.Offset(0, 5), , xlValues, xlWhole) If Not c Is Nothing Then c = c.Offset(0, -1).Address For Each s In Sheets("Подписи").Shapes If s.TopLeftCell.Address = c Then s.Copy p.Offset(-1, 2).Select .Paste Exit For End If Next End If Set p = .Cells.Find("Подпись:", p, xlValues, xlWhole) 'нельзя исп. FindNext Loop Until p.Address = pa End With End Sub Sub test() SignSheet ActiveSheet End Sub Только вот не могу въехать как его применить под мою задачу? Половина дела тут сделана - определены ячейки с именами картинок ну и картинки по ним. А вот как теперь осуществить вставку по моим координатам? В принципе, можно не делать цикл сохранения листа по вставки каждых 10 изображений, а сначала вставить все и сколько получится листов - сохранить одним файлом. Дайте совет. =============== примечание модератора ==================== Если вам надоест «изобретать велосипед», и вам понадобится универсальный готовый код для вставки картинок, то у меня на сайте есть готовая программа для вставки изображений на лист Excel: http://excelvba.ru/programmes/PastePictures Цитата:
Последний раз редактировалось EducatedFool; 06.10.2012 в 14:20. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 | Людвиг | Microsoft Office Excel | 5 | 25.10.2014 11:46 |
Проверка данных из Веба на соответствие заданному условию без вставки их на лист | Snekich | Microsoft Office Excel | 6 | 23.11.2011 20:18 |
копирование изображений из закрытого файла в активный лист | Jargunkin | Microsoft Office Excel | 1 | 01.03.2011 00:00 |