每页间隔一张图片

时间:2019-06-09 21:01:02

标签: excel vba pdf

我目前必须将许多图片(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

我激活Cell A2,以便每次将图片最初放置在同一位置。然后,根据变量“ incr”的定义,将图片向下移动一定量。起初,我以那个数字(660)取笑,直到它起作用为止,然后继续进行下一个报告。问题在于,对一个报告有效的对另一个报告无效。

我发现这很令人惊讶,因为我将打印区域(我认为这决定了页面的长度)设置为合并所有列。尽管每个报告的行数都是唯一的,但它们的列数却完全相同。因此,每张纸的打印区域应相同,并且每张图片的尺寸应完全相同,从而不必在报告之间更改编号。

1 个答案:

答案 0 :(得分:0)

当纸张之间的打印区域完全相同时,我仍然不理解为什么以前的间距想法不起作用。但是,知道打印区域是相同的,我改为将每个页面的左上角单元格激活,并将每张图片插入该单元格中。这样可以确保在将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