Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 6
  • 264

Jeśli kopiujemy formuły, Excel uaktualnia je, by odnosiły się do nowego otoczenia (adresowanie względne). Wiem, że można adresować komórki bezwzględnie, ale nie takie rozwiązanie jest mi potrzebne. Chciałbym móc skopiować zakres komórek z formułami i wkleić go bez żadnych zmian nie musząc stosować formatowania bezwzględnego.

Jak to zrobić? (VBA pomysł: Czy można podczas kopiowania na chwilę zastąpić znak "=" innym znakiem, by treść formuły była traktowana, jako tekst (oszukać Excel), a następnie wklejać i zastąpić tekst znakiem =?).

Może już Państwo mają jakieś gotowe makro do tego celu? Z góry dziękuję i pozdrawiam miłośników arkuszy.

 

Jacek_Kotowski
  • Zapytał
  • @ Jacek_Kotowski | 19.06.2015
    • lider
    • laureat
    • ekspert
    • 60
    • 54
    • 94

Odpowiedzi (2)

  • 3

Tak na szybko:

Sub formula()

    Range("k4").formula = Range("e4").formula
    
End Sub


 

  • Odpowiedział
  • @ | 27.06.2015
  • TRENER ALTKOM AKADEMII
  • 4

Witam.

Tak na szybko po drobnych modyfikacjach, kod nie jest zabezpieczony przed wszystkimi wyjątkami, ale działa. Kopiuję dowolny zakres względnie.

Sub KopiujWzglednie()

Dim komorka As Range
Dim komorka_celu As Range
Dim wiersz As Long
Dim kolumna As Long

Set komorka_celu = Application.InputBox("Zaznacz adres docelowy", "Wklej formułę względnie", Default:=Range("A1").Address(0, 0), Type:=8)

wiersz = komorka_celu.Row - ActiveCell.Row
kolumna = komorka_celu.Column - ActiveCell.Column

For Each komorka In Selection

    komorka.Offset(wiersz, kolumna).Formula = komorka.Formula

Next

End Sub

Pozdrawiam.
Paweł Niemyt.

pawel_niemyt
  • Odpowiedział
  • @ pawel_niemyt | 29.06.2015