¿Cómo acceder a la propiedad de fila de una forma en una colección?

Resuelto Brian Babo asked hace 7 meses • 1 respuestas

Tengo una colección de formas allShpsColly 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 GetSwimlaneNumfunció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?

Brian Babo avatar Feb 16 '24 05:02 Brian Babo
Aceptado
  • TopLeftCellrepresenta 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 withinun 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)

taller avatar Feb 15 '2024 22:02 taller