¿Cómo acceder a la propiedad de fila de una forma en una colección?
Tengo una colección de formas allShpsColl
y necesito probar si cada forma reside en un grupo de filas llamadas aquí carriles.
For i = 1 To swimlaneCount
For j = 1 To allShpsColl.count
If GetSwimlaneNum(allShpsColl.Item(j).Row) = i Then '<--Object doesn't support this property or method
shpCount = shpCount + 1
ReDim Preserve rowShpsArr(1 To shpCount)
rowShpsArr(shpCount) = allShpsColl.Item(j)
End If
Next j
Next i
Y la GetSwimlaneNum
función es:
Function GetSwimlaneNum(ByRef lowRow As Integer) As Integer
Dim i As Integer
For i = 1 To 999
If lowRow > (i - 1) * 9 And lowRow <= i * 9 Then
GetSwimlaneNum = i
Exit For
End If
Next i End Function
¿Cómo puedo acceder a la propiedad de fila del elemento de colección correspondiente para poder comparar valores?
Aceptado
TopLeftCell
representa la celda que se encuentra debajo de la esquina superior izquierda del objeto de forma.
If GetSwimlaneNum(allShpsColl.Item(j).TopLeftCell.Row) = i Then
- Si la forma puede cubrir varios carriles, necesita dos condiciones para garantizar que la forma sea
within
un carril.
If GetSwimlaneNum(allShpsColl.Item(j).TopLeftCell.Row) = i And _
GetSwimlaneNum(allShpsColl.Item(j).BottomRightCell.Row) = i Then
Documentación de Microsoft:
Propiedad Shape.BottomRightCell (Excel)
Propiedad Shape.TopLeftCell (Excel)