 |
on-line-teaching.com Онлайн курсы MS Office: Word, Excell. Как сделать сайт: HTML, JS, PHP
|
Предыдущая тема :: Следующая тема
|
Автор |
Сообщение |
Tasya Prizivnik - draftee

Зарегистрирован: 19.10.2009 Сообщения: 2 Откуда: Тольятти
|
Добавлено: Пн Окт 19, 2009 9:42 am Заголовок сообщения: Вывод картинок в цикле с помощью макроса VBA в Excel |
|
|
Здравствуйте!
Я только начала осваивать написание макросов на VBA. Столкнулась с такой проблемой. Необходимо при формировании таблицы в Excel с помощью макроса доставать картинки в цикле. Данные о картинках на исходном листе содержатся в определенном столбце имеют вид:
Фото
\\x1\GB\Картинки\1020796.jpg
\\x1\GB\Картинки\1093125.jpg
\\x1\GB\Картинки\1072625.jpg
\\x1\GB\Картинки\1050137.jpg
\\x1\GB\Картинки\1050134.jpg
\\x1\GB\Картинки\1050136.jpg
\\x1\GB\Картинки\1035869.jpg
\\x1\GB\Картинки\1035809.jpg
\\x1\GB\Картинки\1035890.jpg
\\x1\GB\Картинки\1093109.jpg
\\x1\GB\Картинки\1035802.jpg
\\x1\GB\Картинки\1035205.jpg
\\x1\GB\Картинки\1035092.jpg
Сам цикл предположительно я сделала следующим:
Код: |
'Определяем количество заполненных строк на исходном Лист1
Sheets("Лист1").Select
SheetRows = ActiveWorkbook.ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
ColRows = Application.WorksheetFunction.CountA(Range(Cells(1, 3), Cells(SheetRows, 3)))
ItRows = 6 'последняя заполненная строка в итоговом листе
'Цикл по заполнению строк в листе с итогами
For i = 2 To ColRows
'читаем путь на файл с картинкой
Sheets("Лист1").Select
FotoTov = Range("T" & i).Value
'считаем на какую строку выводить картинку
Sheets("Price").Select
Strok = ItRows + 1
ItRows = Strok
'выводим картинку в ячейку
Range("C" & Strok).Select
ActiveSheet.Pictures.Insert(FotoTov).Select
With Selection
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65.25
.ShapeRange.Rotation = 0#
.Placement = xlMove
.PrintObject = True
End With
Next i
|
При выполнении макроса при выводе уже второй картинки выходит ошибка "невозможно получить свойство Insert класса Pictures"
И есть ещё один ньанс, который нужно предусмотреть, не в каждой строчке может быть путь к картинке, но это я предполагаю обойти через условие if которое будет проверять на заполненность ячейки
В чем моя ошибка при выводе картинок в цикле и как нужно правильно составить текст макроса для корректного отображения картинок? |
|
Вернуться к началу |
|
 |
Tasya Prizivnik - draftee

Зарегистрирован: 19.10.2009 Сообщения: 2 Откуда: Тольятти
|
Добавлено: Пн Окт 19, 2009 10:57 am Заголовок сообщения: |
|
|
Тема закрыта нашла ошибку. Файл может отсутствовать по указанному пути добавила блок проверки на существование файла
Код: |
If Len(Range("C" & Strok).Value) <> "" Then
If Len(Dir(FotoTov)) <> 0 Then
Range("C" & Strok).Select
ActiveSheet.Pictures.Insert(FotoTov). _
Select
With Selection
.ShapeRange.LockAspectRatio = msoTrue
.ShapeRange.Height = 65.25
.ShapeRange.IncrementLeft 2.25
.ShapeRange.IncrementTop 3#
.ShapeRange.Rotation = 0#
.Placement = xlMove
.PrintObject = True
End With
End If
End If
|
|
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|