2,506
社区成员
发帖
与我相关
我的任务
分享
测试方法如下:
1. 新建一个Word文档,然后随便插入一个表格(任意大小都行,比如3列×2行的);
2. 选定刚才的表格,Ctrl+C,然后Ctrl+V两次(随意,1次也行的),现在文档中是“3个表格”了。
把”光标“定在其中的任意一个表格内。
3. Alt+F11打开VBE,插入一个“标准模块”,粘贴上面的代码。
运行,可以看到:有多少个表格,就会MsgBox多少次,跟光标在哪个表格内无关。
当然我是“故意捣乱”的…………你们都可以忽略我的回复。
不过其实不用“加条件”,代码第11行只要这样就行了:
If t1.Range.End = t2.Range.End Then
[/quote]
这不是不想删掉原来的东西么
其实我在考虑,两个表格可以横向平行放么?

不过其实不用“加条件”,代码第11行只要这样就行了:
If t1.Range.End = t2.Range.End Then
Sub test()
Dim t1 As Object
Dim t2 As Object
Dim i As Integer
If Selection.Information(wdWithInTable) = True Then
Set t1 = Selection.Tables(1)
For i = 1 To ActiveDocument.Tables.Count
Set t2 = ActiveDocument.Tables(i)
If t1 = t2 And t1.Range.End = t2.Range.End Then
MsgBox "这是tables(" & i & ")"
End If
Next
Else
MsgBox "光标不在表内"
End If
End Sub
测试方法如下:
1. 新建一个Word文档,然后随便插入一个表格(任意大小都行,比如3列×2行的);
2. 选定刚才的表格,Ctrl+C,然后Ctrl+V两次(随意,1次也行的),现在文档中是“3个表格”了。
把”光标“定在其中的任意一个表格内。
3. Alt+F11打开VBE,插入一个“标准模块”,粘贴上面的代码。
运行,可以看到:有多少个表格,就会MsgBox多少次,跟光标在哪个表格内无关。
当然我是“故意捣乱”的…………你们都可以忽略我的回复。
[/quote]
好吧,没测试这个情况
Sub test()
Dim t1 As Object
Dim t2 As Object
Dim i As Integer
If Selection.Information(wdWithInTable) = True Then
Set t1 = Selection.Tables(1)
For i = 1 To ActiveDocument.Tables.Count
Set t2 = ActiveDocument.Tables(i)
If t1 = t2 Then
MsgBox "这是tables(" & i & ")"
End If
Next
Else
MsgBox "光标不在表内"
End If
End Sub