Desearía que la ejecución sea en columna B

Esto referente cuando ejecuto la macro:

En la columna B a partir de la fiLa 6, ejemplo B6.

Otra consulta, cómo poder Aplicarlo esa fórmula a varias hojas del libro excel, ¿se podrá?

Sub Rellenar()
'Por.Dante Amor
    Application.ScreenUpdating = False
    u = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    Range("A1:C" & u).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    Columns("A:C").Copy
    Range("A1").PasteSpecial Paste:=xlPasteValues
    Application.ScreenUpdating = True
    Application.CutCopyMode = False
End Sub

2 respuestas

Respuesta
1

Para todas las hojas, en la columna B:

Sub RellenarHojas()
'Por.Dante Amor
  Dim sh As Worksheet
  On Error Resume Next
  For Each sh In Sheets
    With sh.Range("B6", sh.Range("B" & Rows.Count).End(3))
      .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
      .Value = .Value
    End With
  Next
End Sub
Respuesta

No podrás copiar una columna y luego pegarla solo en un rango porque la dimensión de la copia superan al rango del pegado.

Cambiá las líneas de copiado y pegado por las 2 que dejo a continuación:

 Application.ScreenUpdating = False
    u = ActiveSheet.UsedRange.Rows(ActiveSheet.UsedRange.Rows.Count).Row
    Range("B6:B" & u).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    'copia y pegado
    Range("B6:B" & u). Copy
    Range("B6").PasteSpecial Paste:=xlPasteValues
    Application.ScreenUpdating = True
    Application.CutCopyMode = False

Esta macro no hace mención a ninguna hoja por lo que se puede utilizar en cualquier hoja activa.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas