Foxtable(狐表)用户栏目专家坐堂 → 请问如何一次性选定word文档中的所有表格?


  共有2609人关注过本帖树形打印复制链接

主题:请问如何一次性选定word文档中的所有表格?

帅哥哟,离线,有人找我吗?
wcs
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
请问如何一次性选定word文档中的所有表格?  发帖心情 Post By:2018/9/4 23:01:00 [只看该作者]

我现在用这样的代码:
全局代码:Public _app As MSWord.Application '定义一个WORD对象
按键代码:
Dim tbs = _app.Selection.Tables '对表格进行排版
For i = 1 To tbs.Count
    Dim tb = tbs(i)
    tb.Range.Select
Next

这样只是依次选定表格,最后的结果是选定了最后一个表格。

希望像按住CTRL键一样一个个地选定WORD中的表格。

有合适的代码吗?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106170 积分:539967 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/9/4 23:19:00 [只看该作者]

试试

Dim app As new MSWord.Application
Dim doc = app.Documents.Open("d:\test.doc")
For Each mytable As object In Doc.Tables
    mytable.Range.Editors.Add(MSWord.WdEditorType.wdEditorEveryone)
Next
Doc.SelectAllEditableRanges (MSWord.WdEditorType.wdEditorEveryone)
app.quit

 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2018/9/5 20:52:00 [只看该作者]

经测试,上述对WORD中普通的表是有效的。
但对于WORD中域链接形成的表,用大大的方括号框起来了,选定区域包含前后的回车键。
这样,用户就无法在WORD中用右键作批量的操作表了(排版)。

还有别的方法吗?

原来的这:tb.Range.Select  是可以选定WORD中域链接形成的表的,没有括号也没有前后的回车键。
但是这只能选择一个。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/5 21:22:00 [只看该作者]

参考

 

Dim app As new MSWord.Application
Dim doc = app.Documents.Open("d:\test123.doc")
For Each mytable As object In Doc.Tables
    mytable.Range.Editors.Add(MSWord.WdEditorType.wdEditorEveryone)
Next
Doc.SelectAllEditableRanges (MSWord.WdEditorType.wdEditorEveryone)
Doc.DeleteAllEditableRanges (MSWord.WdEditorType.wdEditorEveryone)
app.visible = True


 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2018/9/5 22:02:00 [只看该作者]

增加了这行代码以后,WORD中域链接形成的表,大大的方括号没有了,但是仍然选定了表前面的一个回车键。
这对于WORD中普通的表是有效的。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/5 22:04:00 [只看该作者]

以下是引用wcs在2018/9/5 22:02:00的发言:
增加了这行代码以后,WORD中域链接形成的表,大大的方括号没有了,但是仍然选定了表前面的一个回车键。
这对于WORD中普通的表是有效的。

 

没有其他方法了,只有这种方法。


 回到顶部
帅哥哟,离线,有人找我吗?
wcs
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1033 积分:7391 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2018/9/5 23:09:00 [只看该作者]

虽然没有解决这个问题,我知道C#可以解决这个问题但是我不会,虽如此我还是要十分感谢您!

近一周以来,对于我提出的这样冷门的WORD自动刷新数据排版类的问题,您也非常及时地解答,我非常感谢您!

作为一个从易表时代走过来的人,我是很喜欢FOXTABLE的!

我目前正在作的,是我这个行业的执业人士很需要的,可以大幅度减轻工作强度并提高工作质量。

十分感谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/9/5 23:19:00 [只看该作者]

c#同样没有方法解决。c#可以foxtable同样也可以。

 回到顶部