2016-04-26 2 views
0

Ich habe eine ziemlich komplizierte Arbeitsmappe mit nicht so direkten Berechnungen mit Verteilungsdurchschnitten. Am Ende der Arbeitsmappe befindet sich ein resultierender Wert in einer bestimmten Zelle. Jedes Mal, wenn das Arbeitsbuch diesen Wert neu berechnet, ändert sich der Wert geringfügig. Gibt es eine Möglichkeit, all diese Werte bei jeder Neuberechnung einer neuen Zelle zu speichern? Idealerweise würde ich das gerne mehr als 100 Mal tun, um ein Diagramm gegen die möglichen Werte zu zeichnen und einen Durchschnittswert zu erhalten.Excel - Behalten Sie die Berechnungsergebnisse als neue Zeilen auf einem separaten Blatt

Wäre ein Macro in der Lage, diesen Job zu erledigen? Wenn ja ... wo fange ich an?

Danke!

+0

VBA wäre der ideale Weg, es zu tun. Legen Sie Ihr Arbeitsblatt so fest, dass es manuell neu berechnet wird. Verknüpfen Sie Ihr Makro mit einer Schaltfläche. Das Makro würde dazu führen, dass die Arbeitsmappe einmal berechnet und den einzelnen Wert in die nächste leere Zelle in einem bestimmten Bereich platziert. Dieser Bereich könnte so vorkonfiguriert sein, dass er Teil der Datenreihe für das Diagramm ist, oder Sie können diesen nächsten Wert in das Diagramm eingeben Datenserien haben auch das VBA-Skript. Nur ein möglicher Ansatz. Was verursacht die Neuberechnung? Ich frage mich nur, ob es eine der RND-Funktionen ist, die eine neue Nummer auf jedem Blatt neu erstellt. Wenn ja, könnte das bewegt werden. –

Antwort

1

Sie müssten die WorkbookCalculate Veranstaltung abonnieren. Um dies zu tun, öffnen Sie den VBE, indem Sie ALT + F11 drücken. Auf der linken Seite sollten Sie die Project Explorer Strukturansicht sehen (wenn nicht, drücken Sie CTRL + R). Klicken Sie mit der rechten Maustaste auf ThisWorkbook und wählen Sie View Code. Dies öffnet ein Texteditorfenster. Am oberen Rand dieses Fensters befinden sich zwei Dropdown-Boxen. Wählen Sie im linken Dropdown-Menü Workbook. Wählen Sie im rechten Dropdown-Menü SheetCalculate.

Jetzt führt die Arbeitsmappe bei jeder Berechnung eine Aktion aus. Unten habe ich ein Beispielskript. Es gibt eine Formel in Sheet2, Zelle A1 für die wir die Geschichte wollen. Sehen Sie, ob Sie den Code an Ihre Bedürfnisse anpassen können oder wenn Sie weitere Informationen benötigen, wenn Sie diese benötigen.

Private Sub Workbook_SheetCalculate(ByVal Sh As Object) 
    Dim sData As Worksheet 
    Dim nNewRow As Long 

    Set sData = Worksheets("Sheet2") 
    nNewRow = sData.Cells(Rows.Count, 1).End(xlUp).Row + 1 

    sData.Cells(nNewRow, 1).Value = sData.Range("A1").Value 

End Sub 
Verwandte Themen