我有一个完整的积木块,我通过积木管理器保存为名称:"aWaiver“在我的自定义类别:”放弃“在”快速部件“图片库与积木块属性:”插入内容在其自己的网页“。
有两个问题:(1)我似乎无法找到正确的"Selected.Range“VBA代码来定位到当前(最后或唯一)页的底部,在该页面中,我要插入aWaiver构建块。(2)当我手动定位到文档底部并插入aWaiver时,它确实开始自己的页面,但随后插入另一个空白页。
下面是我从我记录的宏中修改的vba代码,尽管存在上述问题,但它似乎有效。
"C:\Users\Brian\AppData\Roaming\Microsoft\Templates\Normal.dotm"). _
BuildingBlockEntries("aWaiver").Insert Where:=Selection.Range, _
RichText:=True```
发布于 2022-02-21 19:54:07
Selection
对象时,只有在不可避免的情况下才会使用Selection
对象。若要在文档末尾添加积木,可以使用Where:=Document.Characters.Last
发布于 2022-02-25 17:21:42
我不愿意发表,因为我的建议,我获得单词读写能力。但这篇文章确实出现在谷歌搜索的各种关键词的结果中。因此,我将分享我的解决方案,因为它缺乏最佳实践。
在我的原型文档的最后一段末尾,我添加了一个bkPageBreakHere
书签。然后,我将所选内容保存在Quick库中,作为一个新的类别Waivers
作为带有insert content only
选项的aPartialWaiver
(原来是insert content as its own page
在页面中断之后而不是在之前)
转到VBA代码,我发现构建块不会自动加载我的模块。所以在我输入的文件中:
Private Sub Document_New()
'load Building Blocks
Application.Templates.LoadBuildingBlocks
'Present Waiver Form
formCombined.Show
End Sub
Private Sub Document_Open()
'load Building Blocks
Application.Templates.LoadBuildingBlocks
'Present Waiver Form
formCombined.Show
End Sub
最后,以我的形式:
Private Sub CommandNext_Click()
...
Selection.GoTo what:=wdGoToBookmark, Name:="bkPageBreakHere" 'Position cursor
Selection.InsertBreak Type:=wdPageBreak 'Start new page
'load next document
Application.Templates( _
"C:\Users\" & Environ("username") & "\AppData\Roaming\Microsoft\Document Building Blocks\1033\16\Building Blocks.dotx" _
).BuildingBlockEntries("aPartialWaiver").Insert Where:=Selection.range, _
RichText:=True
...
问题仍然存在。(1)尽管做了所有的事情,但在我最后一次合法的一页之后,我仍然得到了一张空页。(不,我没有在最后一页执行上面的代码部分。) (2)当从模板调用文档时,我得到了“安全警告宏已被禁用”。
但总的来说,客户是满意的。我会继续努力找到解决办法的。任何想法都是受欢迎的,但并不是预料中的。
https://stackoverflow.com/questions/71211818
复制相似问题