Word文档中的页脚页码

时间:2012-06-25 13:15:25

标签: c# vb.net visual-c++ vba ms-office

我在MS Word互操作中遇到问题。我正在使用VC ++,但我也接受C#中的建议。

在我使用SaveAs方法时在页脚中给出页码的单词文档中,我得到一个随机页码,而不是正确的,任何人都可以帮助我。

我也尝试过使用PageNumbers.GetStartNumber和Range.GetInformation方法而没有运气。

如何从Word中获取页脚中的实际页码?

2 个答案:

答案 0 :(得分:1)

这不是C#或VC ++,但VBA版本是这样的。页码可能是一个字段,因此如果您有一个,请使用选择。

Public Sub GetPageNumber()
    On Error GoTo MyErrorHandler

    Dim currentDocument As Document
    Set currentDocument = ActiveDocument

    Debug.Print Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Text 'Or...
    Debug.Print Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Fields(1).Result

    Exit Sub

MyErrorHandler:
    MsgBox "GetPageNumber" & vbCrLf & vbCrLf & "Err = " & Err.Number & vbCrLf & "Description: " & Err.Description
End Sub

答案 1 :(得分:1)

谢谢,我能够使用此代码解决它。在VC ++中

Selection oSelection = m_oApp.GetSelection();
Sections ss = oSelection.GetSections();
Section s = ss.GetFirst();
HeadersFooters hf = s.GetHeaders();
HeaderFooter hfItem = hf.Item(1);
PageNumbers ps = hfItem.GetPageNumbers();

//to get the First pageNumber

long nNo = ps.GetStartingNumber();
HeadersFooters footers = s.GetFooters();
HeaderFooter footer = footers.Item(1);
Range r = footer.GetRange();

//to get the First page footer text
CString strFooterText = r.GetText();