当visible=false,word跨页合并单元格发生意外。

yx_elee 2010-02-23 04:50:26
先向妖哥致敬!

依然是根据妖哥的帖子指点,使用Ole处理Word表格。
用bcb生成word文档,然后对表格中的某些单元格进行合并。相关代码如下:


my_table.FN("Cell", intStartRow, intMergeCol).PG("Range").PR("Select");//定位到要合并的首行和列
my_select.FN("MoveDown", 5, intMergeCount-1, 1); // 光标向下移动并选中 合并行数-1 行
my_select.PG("Cells").PR("Merge"); // 合并,报错时,代码运行到此处
my_select.PG("Cells").PS("VerticalAlignment", 1); // 竖向居中
my_select.PG("ParagraphFormat").PS("Alignment", 1); // 横向居中



本段代码,在 my_word.PS("Visible", true) 的情况下是没有问题的。
在 my_word.PS("Visible", false)的情况下大部分也是没有问题的。

但当合并的第一行处于本页的最后一行,而第二行是下一页的第一行的时候,就发生了意外。这种意外情况在visible=true 的情况下是不会出现,请妖哥和各位大侠指点迷津。谢谢!
...全文
167 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yx_elee 2010-03-25
  • 打赏
  • 举报
回复
结贴了
yx_elee 2010-03-10
  • 打赏
  • 举报
回复
找到老妖04年回的一个帖子,问题解决了:


my_select.Exec(Procedure("TypeText")<<myText);
yx_elee 2010-03-10
  • 打赏
  • 举报
回复
我发现这是在合并单元格时,单元格里面有数据就会发生这种现象。如果我合并后再赋值应该就不会了。但是这个语句应该这么写呢?
在宏里面的VBA语句是这样写的

Selection.TypeText Text:="1"


我在CB中用下面两种语句好像都有问题,大家帮忙看看:

my_select.PG("Cells").PG("Range").PS("Text", myText);
my_select.PG("TypeText").PS("Text", myText);
geneshell 2010-03-01
  • 打赏
  • 举报
回复
踩一脚,有空了来关注,谢谢楼主先
yx_elee 2010-03-01
  • 打赏
  • 举报
回复
这种情况是在文档处于visible=false的情况下才会发生的。
异常 raised exception class EOleSysError with message '发生意外。'
lhy 2010-02-25
  • 打赏
  • 举报
回复
什么意外?
yx_elee 2010-02-25
  • 打赏
  • 举报
回复
自己顶一顶,希望各位大侠关注一下,呵呵
ydlchina 2010-02-25
  • 打赏
  • 举报
回复
我的只是最后一行合并,而下一页的下一行并没有参与合并

不过感觉如果不能解决,你就避开最后一行,不使用它,毕竟让最后一行的表格,和下一页的表格有个缺口太难看.
ydlchina 2010-02-25
  • 打赏
  • 举报
回复
测试了一下,确实有这种情况,也没有想到好的解决方法.

552

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 茶馆
社区管理员
  • 茶馆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧