powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Excel вставка картинок
13 сообщений из 13, страница 1 из 1
VBA Excel вставка картинок
    #39452181
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
коллеги, нужна ваша помощь.

Формируется отчет, в конце когда отчет уже готов, мне необходимо в ячейку перед артикулом вставить картинки.
артикулов около 3000.
Я вставляю их так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
....
    With Application
        .ScreenUpdating = False
        .calculation = xlCalculationManual
        .EnableEvents = False
        .DisplayStatusBar = False
        .DisplayAlerts = False
   End With

For r = 2 To 3000
      If oSH.Cells(r, 2) <> "" Then _
        Call fun_InsertPicture(oSH, oSH.Cells(r, 2), oSH.Cells(r, 1),45)
Next

    With Application
        .ScreenUpdating = True
        .calculation = xlCalculationAutomatic
        .EnableEvents = True
        .DisplayStatusBar = True
        .DisplayAlerts = True
   End With
....


Public Function fun_InsertPicture(ByVal oWS As Worksheet _
                                 ,ByVal Article As String _
                                 ,ByVal oRange As range _
                                 ,ByVal SizePicture As Double)
Dim oShape As Shape
       
'PathPicture переменная там путь к папке на сетевом диске
On Error GoTo err
    Article = PathPicture & Article & ".jpg"
    With oRange
       oWS.Shapes.AddPicture(Article, msoTrue, msoTrue, .Left + 1, .Top + 1, SizePicture, SizePicture)
    End With

    Exit Function
err:
    Exit Function

End Function



Вопрос: как этот процесс ускорить, может есть какой то другой способ?
Каждая картинка примерно 20кб
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39455568
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть идеи?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39455876
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Focha,

Сколько времени сейчас занимает вставка ?
Сколько нужно получить ?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39455950
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeFocha,

Сколько времени сейчас занимает вставка ?
10-15 минут
Сколько нужно получить ?
очень хотелось бы не больше минуты.


Может быть из-за сети?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39457820
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fochabig-dukeFocha,

Сколько времени сейчас занимает вставка ?
10-15 минут
Сколько нужно получить ?
очень хотелось бы не больше минуты.


Может быть из-за сети?
Что мешает проверить - разместить файлы локально и замерить время ?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39459314
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeFochaпропущено...


Может быть из-за сети?
Что мешает проверить - разместить файлы локально и замерить время ?

проверил, 7-9 минут стало.
Вообщем другого алгоритма нет?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465295
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет идей?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465463
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Focha,

Можно попробовать поиграться с картинками - уменьшить размер, png, прогресивный джипег итд
Отчеты можно генерить и по расписанию , на том же SSRS
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465703
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeFocha,

Можно попробовать поиграться с картинками - уменьшить размер, png, прогресивный джипег итд
Отчеты можно генерить и по расписанию , на том же SSRS
Картинки сжал в jpg, особа не помогло, картинки и так мало весят.
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465704
Фотография Focha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
big-dukeFocha,

Можно попробовать поиграться с картинками - уменьшить размер, png, прогресивный джипег итд
Отчеты можно генерить и по расписанию , на том же SSRS
SSRS тут причем? я же про VBA говорю.
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465716
просто я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Focha,
если не "прятать" Excel, скорость изменится?
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465769
iMrTidy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fochaесть идеи?

Время должно сократиться еще, если как можно меньше работать с индивидуальными ячейками. Для начала скопировать область проверки в массив и обращаться к функции вставки картинки через этот массив. Я протестировал с картинкой размером 184 кб, которая лежит локально, Excel тоже локально. 100 вставок Вашим методом заняли 1078 миллисекунд, другим методом (ниже) 220 миллисекунд.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Dim wb As Workbook
Dim sh As Worksheet
Dim rn As Range
Dim sPicPath As String

Set wb = ThisWorkbook
Set sh = wb.Sheets(1)
Set rn = sh.Range(sRng)
sPicPath = "..."

With sh.Pictures.Insert(sPicPath)
    With .ShapeRange
        .LockAspectRatio = msoTrue
        .Width = 45
        .Height = 45
    End With
    .Left = rn.Left
    .Top = rn.Top
    .Placement = 1
    .PrintObject = True
End With
...
Рейтинг: 0 / 0
VBA Excel вставка картинок
    #39465785
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fochabig-dukeFocha,

Можно попробовать поиграться с картинками - уменьшить размер, png, прогресивный джипег итд
Отчеты можно генерить и по расписанию , на том же SSRS
SSRS тут причем? я же про VBA говорю.
Я к тому, что может вам инструмент поменять ?
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA Excel вставка картинок
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]