2017-04-04 73 views
3

我正在尝试使用MS-Access中的VBA将图片添加到MS-Word文档。 它确实有效,但是当我尝试设置位置时,出现运行时错误。。向Word文档添加图片:无效的属性分配

以下是可用的代码行。

objShapes.AddPicture FileName:=strCompleteImagePath, LinkToFile:=False 

MSDN,为.AddPicture语法

expression .AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height) 

我想:

objShapes.AddPicture strCompleteImagePath, True, True, 100, 100 , 70 , 70 

objShapes.AddPicture FileName:=strCompleteImagePath, _ 
        LinkToFile:=False, _ 
        SaveWithDocument:=False, _ 
        Left:=100, _ 
        Top:=100, _ 
        Width:=70, _ 
        Height:=70 

,但我得到“错误号码的错误信息augme nts或无效财产分配“

有什么我是盲目的?这是因为MS-Access?

我正在从MS-Access数据库中取出一个图形文件的路径,打开一个MS-Word文档,并将图像插入到文档的中间......这就是为什么我需要设置它的原因位置。在一次操作中没有办法做到这一点,.AddPicture似乎承诺?

+1

不能先插入,然后将它移动到你想要的地方吗? – Masoud

+0

不相关,但是当文件路径不是'String'时?考虑使用'path'而不是'strCompleteImagePath'(该过程只处理一个单一路径,不是吗?) - 并阅读为什么*系统匈牙利语符号是完全无用的[**在这篇优秀的文章中**] (https://www.joelonsoftware.com/2005/05/11/making-wrong-code-look-wrong/)。 –

回答

0

Shapes.AddPicture documentation的MSDN示例是添加图片到画布项,不以形状集合直接。你尝试过吗?

的描述是很清楚,太:

添加图片到画布。返回一个表示图片并将其添加到CanvasShapes集合的Shape对象。

Dim canvas As Shape 
Set canvas = ActiveDocument.Shapes.AddCanvas(Left:=100, Top:=100, Width:=70, Height:=70) 

Dim pic As Shape 
Set pic = canvas.CanvasItems.AddPicture(FileName:=path, LinkToFile:=False, SaveWithDocument:=True) 
+0

马特和马苏德,感谢您的建议。虽然我现在可以将图像设置在不同的位置,但我仍然不确定如何强制它在新页面上。我不是MS word对象的专家。我想我必须定义一个新的范围到我的文档的最后一页,然后一些如何将该信息传递给AddPicture方法。 * fyi,我试着让顶端参数> 800认为会迫使它从下一页开始)。 – EdFnj

+0

@EdFnj高兴地看到听到它的工作!如果您有新问题,请将其标记为已回答并提出新问题 - 但请确保您研究了如何将页面添加到Word文档,以及如何首先在特定页面上添加图形。 –