Option Explicit
Sub TableTest()
Dim cellMin As String
Dim cellMax As String
cellMin = ThisDocument.Tables(2).Cell(2, 4).Range.Text
cellMax = ThisDocument.Tables(2).Cell(2, 5).Range.Text
MsgBox "The values are " & cellMin & " and " & cellMax & "!"
End Sub
With ActiveDocument.Tables(1) ' or (2)
If (.Rows.Count * .Columns.Count) = .Range.Cells.Count Then
' you have your first example
Else
' you have your second example
End If
End With
或者您可以使用类似的东西,因为在这种情况下您知道单元格 (2,4) 和单元格 (6) 必须存在。
With ActiveDocument.Tables(1) ' or (2)
If .Cell(2,4).Range.Start = .Range.Cells(6).Start Then
' you have your second example
Else
' you have your first example
End If
End With
一旦确定这是你的第二个例子,你可以做类似的事情
Dim MinColumn As Long
Dim MaxColumn As Long
Dim theRow As Long
With ActiveDocument.Tables(2)
If UCase(Trim(.Cell(2,4).Range.Text)) = "MIN" then
MinColumn = 4
Else
MinColumn = 5
End If
For theRow = 3 To .Rows.Count
Debug.Print "Row " & CStr(theRow) & ", Min: " & .Cell(theRow,MinColumn).Range.Text
Next
End With
您需要在具有合并单元格的表中直接处理各个单元格。
以下是假设代码与两个表位于同一文档中的示例:
“如何识别有哪些类型的表”确实是一个太笼统的问题。
对于您展示的具体示例(具有任意数量的行),您可以使用类似以下内容来区分两者:
或者您可以使用类似的东西,因为在这种情况下您知道单元格 (2,4) 和单元格 (6) 必须存在。
一旦确定这是你的第二个例子,你可以做类似的事情