为了访问范围内的单个表(例如,rngOuter),我使用了: tblOuter = rngOuter.Tables [1]; 在我将嵌套表放在该外部范围表中的范围(例如,rngInner)之后,我发现: tblInner = rngInner.Tables [1]; 不工作。 rngInner.Tables [1]引用tblOuter,而不是表中的表。 事实上,rngInner的Tables集合只有一个元素,那就是tblOuter。为了访问tblInner,我必须得到tblOuter.Range.Tables [1]。
有人知道我是在犯错,还是就是这样?
答案 0 :(得分:2)
AFAIK“就像它一样”,但你可以通过使用Cell.Tables而不是Cell.Range.Tables来查找包含表格的单元格。例如查找当前选择中包含可以使用的表的单元格
Sub listInnerTables()
Dim c As Cell
Dim r As Range
Dim t As Table
Dim tcount As Long
Set r = Selection.Range
If r.Tables.Count > 0 Then
tcount = 0
For Each t In r.Tables
tcount = tcount + 1
For Each c In t.Range.Cells
If c.Range.InRange(r) Then
If c.Tables.Count > 0 Then
Debug.Print "Table: " & CStr(tcount) & _
vbTab & " Row: " & CStr(c.RowIndex) & _
vbTab & " Col: " & CStr(c.ColumnIndex) & _
vbTab & " Table count: " & CStr(c.Tables.Count)
End If
End If
Next
Next
End If
Set r = Nothing
End Sub