我不熟悉VBA,但需要使用microsoft the documentation form 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:d:\ gakwandi.docx中没有这样的属性[未知]候选者是:.....这表明我某种方式在某处弄错了语法。我正在跳过更有经验的Windows编程人员会指出我可能做错了什么。
感谢。
答案 0 :(得分:0)
在Word VBA中,您可以通过这种方式检查页数:
? ActiveDocument.Range.Information(wdNumberOfPagesInDocument)
或
? ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
我不知道如何将它放在C ++语法中,但希望你可以自己解决它。
答案 1 :(得分:0)
我能够将一段代码放在一起以获得我想要的东西。只要其他人需要这样做就把它留在这里。再次感谢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)");