Estoy tratando de pegar una fórmula junto a la variedad de células, pero sólo el de uno que contiene un valor, el script debe bucle hasta que la siguiente celda en el rango está vacía. Por ejemplo, en la Hoja 1 de la Columna A contiene la fecha hasta la vuelta 12, entonces me gustaría pegar una fórmula en la columna D2:D12 que Respecta a

InformationsquelleAutor user1203382 | 2012-02-11

5 Comentarios

  1. 3

    Como este?

    Option Explicit
    
    Sub Sample()
        Dim lastRow As Long, i As Long
        Dim ws As Worksheet
    
        Set ws = Sheets("Sheet1")
    
        lastRow = ws.Range("A" & Rows.Count).End(xlUp).Row
    
        With ws
            For i = 1 To lastRow
                If Len(Trim(.Range("A" & i).Value)) <> 0 Then _
                .Range("D" & i).Formula = "YOUR FORMULA"
            Next i
        End With
    End Sub
    • Sid, votó +1 aunque creo que este es un «mirar hacia abajo» en lugar de «buscar» para el rango de interés.
    • Incluso he pensado en eso, pero luego, cuando me vuelva a leer la pregunta «Por ejemplo, en la Hoja 1 de la Columna a contiene la fecha hasta la vuelta 12» he decidido de otra manera 🙂
  2. 2

    Como se puede ver abajo a la primera celda en blanco a continuación, puede evitar un bucle y el uso de

    El código incluye una prueba para asegurarse de que el código no proceder en caso de que todos los de la columna está en blanco – es decir, si el rango de A1 se extiende hacia abajo a la parte inferior de la hoja y A1 está en blanco

    Este código agrega una fórmula de la muestra la vinculación de cada celda en la columna D para la respectiva fila en la columna B

    Sub FillData()
        Dim rng1 As Range
        Set rng1 = Range([a1], [a1].End(xlDown))
        If Not (rng1.Rows.Count = Rows.Count And Len([a1].Value) = 0) Then rng1.Offset(0, 3).FormulaR1C1 = "=RC2"
    End Sub
    • Estoy un poco tarde a la fiesta, pero es una buena alternativa que evita el bucle.
  3. 1

    Me gusta Sid principio, pero una vez que el rango de filas, puede insertar la fórmula en la columna D, todos a la vez, sin bucles, de varias maneras, he aquí uno:

    Option Explicit
    
    Sub AddFormula()
        Dim LR As Long
        LR = Range("A" & Row.Count).End(xlUp).Row
        Range("D2:D12").Formula = "=A2 + 7"  'just an example of a formula
    End Sub
    • Gracias Jerry :). Sin embargo, no podría ayudar en caso de que existan celdas en blanco entre: a) Si no hay celdas en blanco, entonces el método es la manera más rápida de ir 🙂 +1
    • Buen punto, mi hábito por tanto tiempo ha sido para la construcción de fórmulas que hacer la prueba para mí de modo que el VBA no tiene que. La fórmula de insertar sería algo como: =SI(A1<>»», MyFormula, «»).
  4. 1

    Esta es una solución simple que es integrado en Excel, siempre y cuando usted no desea copiar a la primera en blanco, saltar por encima de el en blanco, a continuación, siga copiando:

    Escriba la fórmula en la primera celda del rango y el tiempo que está en la columna directamente a la derecha o a la izquierda de su rango de celdas llenas, simplemente haga doble clic en el cuadro negro de controlador en la esquina inferior derecha de la celda. Que automáticamente va a copiar la fórmula hacia abajo hasta la última celda no vacía de la gama.

Dejar respuesta

Please enter your comment!
Please enter your name here