Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 1

ActiveCell.FormulaR1C1 = "=MID(RC[-1],5,9)"

    Range("E2").Select

    Selection.AutoFill Destination:=Range("E2").End(xlDown), Type:=xlFillDefault ' tutaj jest błąd

    Range("E2").End(xlDown).Select

    Selection.Copy

    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

        :=False, Transpose:=False

 

Jak to zdebugować? Chcę żeby formuła została przeciągnięta do ostatniej zapełnionej komórki. 

Joanna_Piechota_29bn
  • Zapytał
  • @ Joanna_Piechota_29bn | 20.01.2021
    • 0
    • 0
    • 0

Odpowiedź (1)

  • 0

W metodzie AutoFill jako cel musisz wskazać zakres komórek rozpoczynający się od tej źródłowej, na podstawie której chcesz wypełnić zakres. Użyte przez Ciebie Range("E2").End(xlDown) wskazuje na pojedynczą komórkę na końcu ciągłego zakresu, dlatego otrzymujesz błąd.

 Skoro formułę i tak masz napisaną z odwołaniem R1C1, proponuję wstawić ją po prostu do właściwego zakresu, a zamiast kopiować ją metodami Copy-Paste, przepisać uzyskane formułami wartości:

With Worksheets("Arkusz1")
   With Range(.Range("E2"), .Range("E2").End(xlDown))
      .FormulaR1C1 = "=MID(RC[-1],5,9)"
      .Value2 = .Value2
   End With
End With

 

Mirosław_Janiak
  • Odpowiedział
  • @ Mirosław_Janiak | 21.01.2021
    • 1
    • 7
    • 1