2017-10-23 2 views
0

Jeder kennt eine schnelle und einfache Möglichkeit, Formeln aus einem Arbeitsblatt in ein anderes Arbeitsblatt zu verschieben, während sie ihre Position und Arbeitsblattinformationen beibehalten. Ich habe ein Budgetierungsblatt, das eine Spalte nach dem letzten eingegebenen Bit durchsucht, aber die Formeln in dieser Spalte stören das Skript. Das Skript im mit, ist dies:Einfache Methode zum Verschieben von Formeln

Sub LastRowInOneColumn() 

'Updateby20150305 

    Dim xLastRow As String 

    With Application.ActiveSheet 

     xLastRow = .Cells(.Rows.Count, "B").End(xlUp).Row 

    End With 

    MsgBox xLastRow 

End Sub 

ich auch sie an eine neue Position in demselben Arbeitsblatt bewegen können, aber sie müssen nur ihre Zellenpositionen zu halten. Gibt es eine einfache Möglichkeit, sie alle auf einmal zu bewegen?

+0

Sind Sie sicher, dass "Wie verschiebe ich die Formeln" ist die "richtige" Frage? Es sieht so aus, als hättest du nur Probleme damit, den richtigen Bereich für etwas anderes zu wählen ... – Jochen

Antwort

1

Wenn Sie eine Formel von einer Zelle in eine andere Zelle kopieren, versucht Excel normalerweise, Ihnen "zu helfen", indem Sie die Zellbezüge anpassen. Zum Beispiel, sagen wir E1 von Sheet1 die Formel in der Zelle haben:

=A1+A2 

und kopieren wir diese zu Sheet2 Zelle E2 erhalten wir:

=A2+A3 

So wird das eingefügte Formel hat Zellen angepasst und bezieht sich auf Zellen auf dem neuen Blatt!

Wir können um das zweite Problem umgehen, indem Sie:

=Sheet1!A1+Sheet1!A2 

in Sheet1. Anstatt die Formel von einer Zelle zur anderen kopieren können wir verwenden:

Sub ExactCopyFormula() 
    Sheets("Sheet2").Range("E2").Formula = Sheets("Sheet1").Range("E1").Formula 
End Sub 

EDIT # 1:

Hier ist der Code für über den angegebenen Bereich Looping:

Sub Copy2() 
    Dim r As Range 

    Application.ScreenUpdating = False 
    For Each r In Sheets("Sheet1").Range("A1:D9000") 
     addy = r.Address(0, 0) 
     Sheets("Sheet2").Range(addy).Formula = r.Formula 
    Next r 
    Application.ScreenUpdating = True 
End Sub 
+0

Ah sehe ich. .Range ("A1: D9000) würde alle Formeln in diesem Bereich von Blatt1 nach Blatt 2 kopieren und dann löschen können Formeln in Blatt 1 ohne Verlust – Gehn47

+0

@ Gehn47 *** NEIN *** .... Sie brauchen eine Schleife ............. Ich werde meine Antwort in Kürze bearbeiten. –

+0

@ Gehn47 Siehe meine ** EDIT # 1 ** –

Verwandte Themen