es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Encuentre la última columna que contiene valores en un rango específico en VBA.

Tengo 3 rangos de datos normales desde A3:O43, Q3:AE43, AG3:AU43, y todas estas celdas están llenas de fórmulas. Ahora me gustaría identificar la última columna de cada rango en función de los valores utilizando FIND o cualquier otra forma. He intentado usar el siguiente código, pero no puedo obtener correctamente los números de columna.

With UBMonthlyYTDSht
    Set Rowss = .Columns("B:B").Find("*", After:=.Range("B1"), searchdirection:=xlPrevious, LookIn:=xlValues)
    If Not Rowss Is Nothing Then Lrows = Rowss.Row
End With

Lcols = UBMonthlyYTDSht.Cells(1, Columns.Count).End(xlToLeft).Column

With UBMonthlyYTDSht
    Set Colss = .Rows(Lrows).Find("*", After:=.Cells(Lrows, Lcols), searchdirection:=xlPrevious, LookIn:=xlValues)
    If Not Colss Is Nothing Then Lcols = Colss.Column
End With

¡¡Agradezco su ayuda!!

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar el siguiente código para identificar la última columna de cada rango basado en los valores:

    Dim LastColA As Long, LastColQ As Long, LastColAG As Long
    
    With UBMonthlyYTDSht
        LastColA = .Cells(3, .Columns.Count).End(xlToLeft).Column
        LastColQ = .Cells(3, .Columns.Count).End(xlToLeft).Offset(0, -(LastColA - 17)).Column
        LastColAG = .Cells(3, .Columns.Count).End(xlToLeft).Offset(0, -(LastColQ - 17)).Column
    End With
    

    Este código asignará la última columna de cada rango a las variables LastColA, LastColQ y LastColAG respectivamente.

Comments are closed.