Как сделать сайт:
  HTML
  JavaScript
  PHP
  CMS
Microsoft Office:
  Word
  Excel
  VBA
Просто о сложном
Список форумов on-line-teaching.com on-line-teaching.com
Онлайн курсы MS Office: Word, Excell. Как сделать сайт: HTML, JS, PHP
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Вывод картинок в цикле с помощью макроса VBA в Excel

 
Начать новую тему   Ответить на тему    Список форумов on-line-teaching.com -> Excel: общие вопросы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Tasya
Prizivnik - draftee
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
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
                     
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов on-line-teaching.com -> Excel: общие вопросы Часовой пояс: GMT + 2
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB