Интервал Одна картинка на странице

В настоящее время мне приходится прикреплять много изображений (jpeg) к документу excel и экспортировать его в формате pdf. Мне нужно по одной картинке на страницу.

Я использовал следующий код, но безрезультатно.

For j = 0 To i
        Cells(2, 1).Activate
        Let pm = "Q:\Public\ACCE LINEAR\IRAD Photomics\A 350 Frame Photomics " & dat & "\" & sn & "\PHOTOMICS" & j & ".jpg"
        ws1.Pictures.Insert(pm).Select
        incr = 660 * (j + 1)
        Selection.ShapeRange.IncrementTop incr
    Next j

Я активирую ячейку A2, чтобы изображение изначально каждый раз помещалось в одно и то же место. Затем я перемещаю изображение вниз на определенную величину, определяемую переменной «incr». Сначала я играл с этим числом (660), пока оно не сработало, а затем перешел к следующему отчету. Проблема в том, что то, что работает для одного отчета, не работает для другого.

Я нахожу это удивительным, поскольку моя область печати (я считаю, что это определяет длину страницы) настроена так, чтобы включать все столбцы. Хотя каждый отчет имеет уникальное количество строк, каждый из них имеет одинаковое количество столбцов. Следовательно, область печати должна быть одинаковой от листа к листу, и каждое изображение должно быть точно такого же размера, чтобы это число не должно было меняться от отчета к отчету.

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
26
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я до сих пор не понимаю, почему моя предыдущая идея с интервалами не сработала, когда область печати от листа к листу абсолютно одинакова. Однако, зная, что область печати одинакова, я вместо этого сделал активной верхнюю левую ячейку на каждой странице и вставил каждое изображение в эту ячейку. Это гарантировало, что изображения не будут обрезаны при экспорте файла Excel в формате PDF.

Вот код, который я использовал. Есть несколько переменных, которые были определены ранее в коде, но вы должны уловить идею

b = counter - 1
For j = 0 To b
    a = j + 1
    If i > 24 Then a = j + 2
    incr = (42 * a) - j
    Cells(incr, 1).Activate
    ws1.Pictures.Insert(MyFolder & "\" & PMArray(j)).Select
Next j

Другие вопросы по теме