VBScript从Excel到Word

我希望有人可以帮助我这个。 下面的VB脚本是在Excel中,并创build一个新的Word文档。 该代码将从Excel复制到Word中的图片。 然后它会创build一个文本框并将其放在图片上。 然后它会把文本放在TextBox中。 此代码确实工作正常。

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中,因为这是上次select的。 我不知何故需要编写像Ctrl + End键的东西,所以它会将光标带到文档的末尾,并在TextBox之外。 我无法得到这个工作。

为了做到这一点,我需要使用这个代码:

 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并从macros运行,它将完美工作。 但是,此代码在Excel中,并且必须在Word中创build所有内容。

有人可以告诉我如何得到它,所以它将光标移出文本框和文档的结尾? 我知道这个问题是因为代码是在Excel中,并试图去Word,必须有一些方法来使它工作或使用ASCII类似的代码。 我尝试了所有我能想到的方法,并花费数小时寻找解决scheme。

感谢任何人可以提供的帮助,

克里斯

如果我正确理解你的问题,这对我有用:

 With wrdapp.ActiveDocument .Range(.Range.Characters.Count, .Range.Characters.Count).Select End With 

编辑

试试这个(添加东西,删除东西,看看有什么作用):

 With wrdapp.ActiveDocument .Range(.Range.Characters.Count, .Range.Characters.Count).Select .GoTo wdgotobookmark, name:="\EndOfDoc" Selection.Move wdCharacter, .Characters.Count End With 

虽然这可能不是理想的方法,但下面的代码将清除Word中的select,将焦点移出文本框。

 wrdApp.Activate SendKeys "{ESC}" 
Interesting Posts