2011-11-15 42 views
7

我只有基本的VBA的遭遇和我之前宏执政经验,主要是用Word 2003中录制宏的使用采取GoToFooter(或编辑页脚)菜单命令,并允许后续的编辑。在WORD 2010中,这个(和许多其他)命令不会“记录”到宏中(但在记录模式下,我确实进入了编辑页脚功能)。Word 2010中宏编辑页眉和页脚

的各种VBS选项的研究表明多种方法来创建页脚,并使宏观内全球页脚设置的变化。但是,如果我只是想在页脚内修改公司名称(例如),我无法在宏子程序中执行此操作。

这个子程序是一个我将从Main Macro中调用的文件夹(&子文件夹)中的每个文件。我有主要的宏功能。

不Word 2010中宏VBA预先排除简单的编辑页脚功能?

在此先感谢

所以,感谢Issun,这里是我的解决方案:

` 
Sub Sub_FTR_0() 
' 
ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 

For i = 1 To ActiveDocument.Sections.Count 
'REM: INSERT Code from RECORD MACRO recorded when editing one Footer correctly 
    Selection. [[xxx]], etc. 

If i = ActiveDocument.Sections.Count Then GoTo Line1 

    ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter 

Line1: 
Next 

    ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 

End Sub 
` 

回答

9

这里是你可以通过VBA访问页眉/页脚的方法。正如你所看到的,这是相当复杂的语法去这么简单的东西:对有

Sub EditHeadersAndFooters() 

Dim i As Long 

For i = 1 To ActiveDocument.Sections.Count 
    With ActiveDocument.Sections(i) 
     .Headers(wdHeaderFooterPrimary).Range.Text = "Foo" 
     .Footers(wdHeaderFooterPrimary).Range.Text = "Bar" 
    End With 
Next 

End Sub 

这里是一个示例代码的链接了解如何更改页眉中的每个文件的文件夹。它采用不同的方法,我从来没有尝试过,但供大家参考:http://www.vbaexpress.com/kb/getarticle.php?kb_id=45

+0

谢谢! 我曾经看过这种语法,并假设它基本上完全用“FUBAR”材料[:)]代替了页眉和页脚...仍然不允许我选择和修改页脚的脚本(比如替换前3个单词或最后一个单词等)。 因此,每个文件都有一个唯一的页面编号方案(不是字段编码),所以完全替换不是我已经设想过的解决方法。 – Dan

+0

谢谢(再次)。您提出的建议和提供的链接的组合使我找到了解决办法。这里是“简单”例程,允许我进入页脚和编辑部分。 子Sub_FTR_0() ' ' Sub_FTR_0宏 ActiveDocument.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 对于i = 1到ActiveDocument.Sections.Count “(REM)地址:FOOTER EDIT选择[CMDS] 若i = ActiveDocument.Sections.Count然后转到线路1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter 线路1: 接着 ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 结束子 – Dan

+0

'code' 子Sub_FTR_0() ' 活动Document.ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter 对于i = 1至ActiveDocument.Sections.Count “(REM)地址:FOOTER EDIT选择[CMDS] 若i = ActiveDocument.Sections。计数然后转到线路1 ActiveDocument.ActiveWindow.ActivePane.View.NextHeaderFooter 线路1: 接着 ActiveWindow.ActivePane.View.SeekView = wdSeekMainDocument 结束子 'code' – Dan

0

这个工作对我的文档中的所有页面。

word.ActiveDocument.Sections(1).Headers(1).Range.Text = “把报头这里”