我希望有人可以帮我解决这个问题。下面的 VB 脚本在 Excel 中并创建一个新的 Word 文档。该代码会将图片从 Excel 复制到 Word 中。然后它将创建一个文本框并将其放置在图片上。然后它将文本放入文本框中。此代码确实可以正常工作。
Set wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
Sheets("Sheet1").Shapes("Picture1").Copy
wrdApp.Selection.Paste
With wrdDoc.Shapes.AddTextBox(msoTextOrientationHorizontal, 200, 150, 96, 50)
.Select
.Name = "TextBox1"
End With
With wrdApp.Selection
.ShapeRange.Fill.Visible = 0
.ShapeRange.Line.Visible = 0
.TypeText Text:="My picture text"
End With
如前所述,上面的代码确实有效。问题是我需要将它放在一个循环中以再次复制图片(X 次)。当我编写代码将其放入循环中时,它会将附加图片粘贴到 TextBox 中,因为这是最后一次选择的。我不知何故需要编写诸如 Ctrl + End 键之类的代码,以便将光标带到文档末尾和文本框之外。我不能让它工作。
为此,我需要使用以下代码:
Selection.EndKey Unit:=wdStory
所以在代码中插入它的正确位置应该是这个部分,就像我在下面的那样:
With wrdApp.Selection
.ShapeRange.Fill.Visible = 0
.ShapeRange.Line.Visible = 0
.TypeText Text:="My picture text"
.EndKey Unit:=wdStory
End With
当我添加该行时,这给了我一个 VB 错误。现在,如果我将此代码复制到 Word 并从宏运行它,它将完美运行。但是,此代码在 Excel 中,必须在 Word 中创建所有内容。
有人可以告诉我如何获取它,以便将光标移出 TextBox 并移至文档末尾吗?我知道这个问题是因为代码在 Excel 中并试图转到 Word,必须有某种方法让它工作或使用 ASCII 的类似代码。我已经尝试了我能想到的一切,并花了几个小时寻找解决方案。
感谢有人可以提供的任何帮助,
克里斯