0

为了访问一个范围内的单个表(比如 rngOuter),我使用了: tblOuter = rngOuter.Tables[1]; 在我将嵌套表放置在该外部范围的表内的范围内(例如 rngInner)后,我发现: tblInner = rngInner.Tables[1]; 不工作。rngInner.Tables[1] 引用 tblOuter,而不是表本身。其实rngInner的Tables集合只有一个元素,那就是tblOuter。为了访问 tblInner,我必须访问 tblOuter.Range.Tables[1]。

有谁知道我是否犯了错误,或者就是这样?

4

1 回答 1

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
于 2012-08-24T16:07:36.770 回答