Word VBA 寻找所在表格的序列号

6lilu9 2018-05-04 05:30:06
Selection.RowIndex 可以得出当前选中的单元格在所在表格中的行
Selection.ColumnIndex 可以得出当前选中的单元格在所在表格中的列

但问题是当前的表格怎么获取呢?比如 Selection.TablesIndex之类的属性。

以下代码中的获取表名有问题,请高手给予正确的代码。
Sub 宏1()
Dim StrAddr As String
' This macro displays the address of a table's selected cell range
' and the table’s last cell address on Word's Status Bar
With Selection
If .Information(wdWithInTable) = True Then
StrAddr = "The selected "

If .Cells.Count = 1 Then
StrAddr = "T" & Selection.Tables(1).Range.Start & "R" & .Cells(1).RowIndex & "C" & .Cells(1).ColumnIndex
Else
StrAddr = "No Table Or More Tables "
End If
End If
End With

Call CopyToClipbox(StrAddr)

MsgBox StrAddr


End Sub
...全文
1488 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
6lilu9 2018-05-08
  • 打赏
  • 举报
回复
引用 4 楼 chewinggum 的回复:
举个例子,把当前选中单元格的表格外框加粗。 首先是先根据选择获取到表格对象,修改其ID属性为特定值。 其次,遍历所有表格,找到ID属性为特定值的表格对象,将其外框加粗。


Selection.Tables(1).ID = "Test1"

For Each tabl In ActiveDocument.Tables
    If tabl.ID = "Test1" Then tabl.Borders.OutsideLineWidth = wdLineWidth225pt
Next
目标是可以达到,总觉得有点绕。
脆皮大雪糕 2018-05-06
  • 打赏
  • 举报
回复
举个例子,把当前选中单元格的表格外框加粗。 首先是先根据选择获取到表格对象,修改其ID属性为特定值。 其次,遍历所有表格,找到ID属性为特定值的表格对象,将其外框加粗。

Selection.Tables(1).ID = "Test1"

For Each tabl In ActiveDocument.Tables
    If tabl.ID = "Test1" Then tabl.Borders.OutsideLineWidth = wdLineWidth225pt
Next
脆皮大雪糕 2018-05-06
  • 打赏
  • 举报
回复
Selection.Tables(1) 其实就是当前表格。 你可以为这个表格设置一个ID或者title啥的,后面想再操作这个表格的时候,就遍历所有的tables,找到ID是你定义的那个。
舉杯邀明月 2018-05-06
  • 打赏
  • 举报
回复
ActiveWorkbook    ' 返回“当前活动工作簿”
ActiveSheet       ' 返回“(当前活动工作簿的)活动工作表”
ActiveCell        ' 返回“(当前活动工作表的)活动单元格”
6lilu9 2018-05-06
  • 打赏
  • 举报
回复
没人吗? 自已顶!

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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