昨天使用
- C/C++ code
QAxObject* newSheet = worksheets->querySubObject("Add()");
成功创建了一个sheet页,但默认是创建在第一个的,我想把newSheet创建在最后一个
试了Move方法好像不起作用:
- C/C++ code
QAxObject* newsheet = worksheets->querySubObject("Add()"); QAxObject *before = worksheets->querySubObject("Item(QVariant)", "Sheet1"); QAxObject *after = worksheets->querySubObject("Item(QVariant)", "Sheet2"); newsheet->dynamicCall("Move(QVariant, QVariant)", before->asVariant(), after->asVariant());
网上查了下好像Add()方法就有位置可设定,vba中是Add after := worksheets(1) 像这样的,不知Qt中该如何操作?
还有Add()都有哪些变量啊?网上查了没查到啊!期待高手帮忙
------解决方案--------------------
楼上给的方法可以插入到最后一列吗?没记错的话,应该是插入到最后一列的前面。
我的方法费劲点,先插入到最后一列的前面,然后将最后一列移到插入那列的前面。
- C/C++ code
QAxObject * last = excelSheets->querySubObject("Item(int)", count); excelSheets->dynamicCall("Add(QVariant)", last->asVariant()); QAxObject * newSheet = excelSheets->querySubObject("Item(int)", count); last->dynamicCall("Move(QVariant)", newSheet->asVariant());
------解决方案--------------------
额,没看到说是最后一列,我试了下代码,插入不到最后一列,在VBA中说明如下
Remarks
If Before and After are both omitted, the new sheet is inserted before the active sheet.
所以只能插入到原来最后一列的前面,不好意思哈,没具体去测试。
要想插入到最后一列,我个人认为只能先插入后,在移动到最后一列,也就是楼主使用的方法
在VBAX11的文档中,Before,和After不存在默认值,在VB中知道怎么来用after,但是在Qt下我还真不
了解,也google了下,没有收获,╮(╯▽╰)╭
要是没有VB中没有move这个函数,那还真不知道咋办。。。