2016-06-28 4 views
-1

Ich bin beschäftigt, einen Produktionsplan in Excel 2010 zu erstellen. Ich habe Formeln verwendet, um mir Fälligkeitsdaten für jeden Job und ein Kontrollkästchen für den Job zu geben. Ich habe die folgende VB verwendet, um die Informationen auf Blatt 2 zu verschieben, wenn das Kontrollkästchen aktiviert ist.Verschieben/Löschen von Daten in Zellen ohne Verschieben/Löschen von Formeln

Sub MoveData() 
    If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then 
    Range("A2:B2:C2:D2:E2:F2:G2:H2:I2:J2:K2:L2:M2").Select 
    Selection.Cut 
    Sheets("Sheet2").Select 
    Range("A1").Select 
    ActiveSheet.Paste 
    Range("A1").Select 
    End If 
End Sub 

Das Problem, das ich jetzt habe, ist, dass es die Formeln mit den Angaben in den Zellen von Blatt 1 bis Blatt bewegt 2. Ich brauche die Formeln in Bogen gesperrt werden 1 und neue Informationen in die Zellen eingefügt beeinflussen. Wenn die Daten in der Zeile bewegt zu Blatt 2 die Zeile in Blatt leer ist 1. Gibt es eine Möglichkeit, automatisch die restlichen Daten alle zu bewegen, die leeren Zellen zu füllen Thanx

+0

Möchten Sie die Formeln für die Verwendung in Sheet2 kopieren? Da in Sheet 1 "= A2 + B2" steht, wird beim Kopieren dieser Zelle davon ausgegangen, dass sie auf "= Sheet1! A2 + Sheet1! B2" aktualisiert wird, aber in Sheet 2 als "= A2 + B2" bleiben soll ? –

+0

Nein, ich brauche die Formeln in Blatt 2 nicht. Blatt 2 ist nur eine Aufzeichnung der ausgeführten Aufträge. Blatt 1 wird wöchentlich aktualisiert, so dass ich die Formeln brauche, um in den Zellen zu bleiben, damit, wenn mein Chef neue Jobs und Daten anzeigt, die Formeln die neuen Daten beeinflussen. – estaq

Antwort

0

Wollen Sie nur die Werte kopieren von Arbeitsblättern (1) zu Blättern ("Sheet2")?

Sub MoveData() 
    Dim r As Range 

    If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then 
     Set r = Worksheets(1).Range("A2:B2:C2:D2:E2:F2:G2:H2:I2:J2:K2:L2:M2") 
     Sheets("Sheet2").Range("A1").Resize(1, r.Count) = r.Value 
     'r.ClearContents 
    End If 

End Sub 
+0

Ja, ich möchte, dass die Informationen in Zelle (Jobname, Frachtdatum) in Blatt 2 verschoben werden, aber die Formeln in Blatt 1 haben – estaq

+0

Der obige Code kopiert die Werte von Sheet1 nach Sheet2 und behält die Formel in Sheet1 bei. Dies scheint nicht sehr nützlich zu sein. Möchten Sie die Werte von Sheet1 stattdessen an das Ende einer Liste in Sheet2 anhängen? –

0

Anstelle von Ausschneiden und Einfügen versuchen Sie Folgendes.

Sub MoveData() 
    If ThisWorkbook.Worksheets(1).Shapes("Check Box 1").OLEFormat.Object.Value = 1 Then 
    Sheets("Sheet2").Range("A1:M1").Formula = Sheets("Sheet1").Range("A2:M2").Formula 
    Range("A1").Select 
    End If 
End Sub 

Edit: Wenn Sie die Originale aus Sheet1 nur zu entfernen, wurden Schneiden verwenden,

Sheets("Sheet1").Range("A2:M2").Clear 
+0

Danke, ich werde es versuchen. – estaq

Verwandte Themen