我是 VBA 的新手,但仍然很挣扎。
我在一个用相对“.\logos\”目录的内容的文件名填充的useform 上有一个列表对象。我想在名为 的书签中插入图片bmLogo
,但我编写的代码(见下文)并不能解决问题。
If ListLogo <> Null Then
ActiveDocument.Bookmarks("bmLogo").Range _
.InlineShapes.AddPicture FileName:=ThisDocument.Path & "\logos\" & ListLogo
End If
有小费吗?另外,如果我可以设置一个高度并在不改变纵横比的情况下调整图像比例,那将非常有用!
谢谢,
路易斯
编辑1:对,所以,bmLogo 是书签的正确名称,所以这不是问题。我只是使用了一个 msgbox 来显示 '"path:" & ThisDocument.Path & "\logos\" & ListLogo',它看起来像是正确的路径。我正在使用 ThisDocument.Path 因为我希望它是相对的,因此文档更便携。我想我会暂时尝试一条绝对路径,看看是否可行,如果没有别的,它应该暗示错误不在哪里。
编辑 2:它适用于 IF 语句之外的绝对路径,当我得到一个 msgbox 来打印绝对路径和相对路径时,它们是相同的。注释掉 IF 语句后,找到相关方法。我很高兴它现在可以工作,但谁能告诉 IF 有什么问题?
编辑3:事实证明,我检查列表框中是否已选择某些内容的方法根本不起作用。相反,我将遍历列表中的每个项目并检查是否选择了该项目。这是一种非常粗略的方法,但在我找到更好的方法之前它会起作用。