Интервал одна картинка на странице - PullRequest
0 голосов
/ 10 июня 2019

В настоящее время мне нужно прикрепить много картинок (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), пока он не заработал, а затем перешел к следующему отчету. Проблема в том, что то, что работает для одного отчета, не работает для другого.

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

1 Ответ

0 голосов
/ 12 июля 2019

Я до сих пор не понимаю, почему моя предыдущая идея интервалов не работала, когда область печати от листа к листу одинакова. Однако, зная область печати, я сделал активную верхнюю левую ячейку каждой страницы и вставил каждое изображение в эту ячейку. Это гарантировало, что изображения не были обрезаны при экспорте файла 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...