1

我不精通 VBA,但需要使用 microsoft的文档表单 msdn 来检索 word 文档中的页数。我尝试了以下代码段中的内容:

 mWordDoc=new CustomQAxWidget("d:\\gakwandi.docx",0);

 QAxObject* selection = mWordDoc->querySubObject( "Selection" );

 QAxObject* pageNumbers = selection ->querySubObject( "PageNumbers" );

 int numberOfPages = pageNumbers->property("Count").toInt();

但是我收到了类似 QAxBase::dynamicCallHelper: PageNumbers: No such property in d:\gakwandi.docx [unknown] Candidates are:..... 这表明我在某处弄错了语法。对 Windows 编程更有经验的人会指出我可能做错了什么。

谢谢。

4

2 回答 2

1

我能够将一段代码放在一起来获得我想要的东西。把它留在这里以防其他人需要做同样的事情。再次感谢 KazJaw。你的意见真的很有帮助。

QAxObject*  word = new QAxObject("Word.Application", this);

//2.OPEN THE DOCUMENT
QAxObject*    doc = word->querySubObject("Documents");
doc->dynamicCall("Open(QVariant)", "d:\\gakwaya11.docx");
doc->setProperty("Visible",false);
//3.GET TO THE CONTENTS
QAxObject * activeDocument=word->querySubObject("ActiveDocument");

QAxObject * content=activeDocument->querySubObject("Content");

int mNumberOfPages = content->dynamicCall("Information(wdNumberOfPagesInDocument)").toInt();

//doc->dynamicCall("SaveAs (const QString&)", QString("d:\\karamage.docx"));
doc->dynamicCall("Close (boolean)", false);
word->dynamicCall("Quit (void)");
于 2013-10-11T03:05:08.737 回答
0

在 Word VBA 中,您可以通过以下方式检查页数:

? ActiveDocument.Range.Information(wdNumberOfPagesInDocument)

或者

? ActiveDocument.Content.Information(wdNumberOfPagesInDocument)

我不知道如何将它放在 C++ 语法中,但希望你能自己弄清楚。

于 2013-10-09T06:05:23.157 回答