首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用objSelection.EndKey移动到word文档底部时出现错误参数

使用objSelection.EndKey移动到word文档底部时出现错误参数
EN

Stack Overflow用户
提问于 2019-03-27 05:31:11
回答 1查看 213关注 0票数 -1

我正在尝试将光标移动到word文档的末尾并粘贴图表。但是我在"objSelection.EndKey Unit:=wdStory“这一行得到了”错误参数“的错误信息。

代码语言:javascript
复制
 Dim objWord As Object
 Set objWord = CreateObject("Word.Application")

 objWord.Documents.Open "N:\Template\Template.docx"
 objWord.Visible = True
 ThisWorkbook.Activate
...

然后,我在while循环中实现了以下内容:

代码语言:javascript
复制
Do While IsEmpty(Range("A1").Value) = False
...
Range("D:D,F:F").Select 'select date and value

Range("F1").Activate
ActiveSheet.Shapes.AddChart2(227, xlLine).Select

ActiveChart.ChartTitle.Text = subregion & " " & typ & " " & cate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlCategory).Select
ActiveChart.PlotArea.Select
ActiveChart.FullSeriesCollection(1).Select
ActiveChart.FullSeriesCollection(1).ApplyDataLabels
ActiveChart.Axes(xlCategory).Select
Selection.TickLabels.NumberFormat = "m/yyyy"
ActiveChart.Parent.Copy
objWord.Activate
objWord.Visible = True
Set objSelection = objWord.Selection                 
objSelection.EndKey Unit:=wdStory                                
objWord.Selection.Paste
...
loop

相同的代码可以在没有while循环的较小示例中运行。现在,我尝试将代码合并到while循环中,oibjSelection.EndKey行将终止宏

我的小样本起作用了:

代码语言:javascript
复制
Sub Macro1()
'
' Macro1 Macro
'

'
    Dim objWord As Object
    Set objWord = CreateObject("Word.Application")
    'Change the directory path and file name to the location'of the document you want to open from Excel
    objWord.Documents.Open "N:\Template\Template.docx"
    objWord.Visible = True
    ThisWorkbook.Activate


    Range("A:A,C:C").Select
    Range("C1").Activate
    ActiveSheet.Shapes.AddChart2(227, xlLine).Select
    ActiveChart.SetSourceData Source:=Range("Sheet1!$A:$A,Sheet1!$C:$C")
    ActiveChart.Axes(xlCategory).Select
    Selection.TickLabels.NumberFormat = "m/yyyy"

    ActiveChart.Parent.Copy
    objWord.Activate
    objWord.Visible = True
    Set objSelection = objWord.Selection

    objSelection.EndKey Unit:=wdStory

    objWord.Selection.Paste

End Sub
EN

回答 1

Stack Overflow用户

发布于 2019-03-27 06:09:03

一种更可靠的到达文档结尾的方法:

代码语言:javascript
复制
Dim rng as Object ' or Word.Range
Set rng = ActiveDocument.Content
rng.Collapse wdCollapseEnd
rng.Paste

但是,请注意,如果Word是从另一个应用程序(例如Excel)自动执行的,并且该项目中没有对Word对象库的引用,则不能使用该Word特定的枚举,因为其他应用程序中的VBA将无法识别它。在这种情况下,需要提供数字等效项,而不是wd枚举。所以:

代码语言:javascript
复制
rng.Collapsed 0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55366500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档