我目前必须将许多图片(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)取笑,直到它起作用为止,然后继续进行下一个报告。问题在于,对一个报告有效的对另一个报告无效。
我发现这很令人惊讶,因为我将打印区域(我认为这决定了页面的长度)设置为合并所有列。尽管每个报告的行数都是唯一的,但它们的列数却完全相同。因此,每张纸的打印区域应相同,并且每张图片的尺寸应完全相同,从而不必在报告之间更改编号。
答案 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