2016-08-18 1 views
-1

Ich möchte 3 Zellen in Excel haben.So finden Sie Max und Min einer Dyanamic-Zelle in Excel

Einer ist dynamisch und max und min Zelle.

Wenn also der dynamische Wert auf max geht, sollte die maximale Zelle aktualisiert werden, andernfalls sollte der maximale Wert den vorherigen höchsten Wert enthalten.

Ähnlich für min als auch.

+1

Wenn Ihre "dynamische Zelle" tatsächlich eine Liste ist und Sie nur neue Werte unter einander in derselben Spalte eingeben (so können Sie eine Historie der Werte sehen), dann ist dies wirklich einfach, würde max Wert sei einfach '= MAX (A: A)' und der Minimalwert wäre nur '= MIN (A: A) '. Wenn Sie meinen, dass die "dynamische Zelle" immer dieselbe Zelle ist und nur einen neuen Wert erhält und den vorherigen Wert überschreibt (also keine Wertehistorie enthält), würde dies VBA erfordern, insbesondere das [Worksheet_Change-Ereignis] (https://msdn.microsoft.com/en-us/library/office/ff839775.aspx). – tigeravatar

+0

Es ist die letztere, wo die dynamische Zelle jedes Mal überschrieben wird, wenn Daten aktualisiert werden. Sie haben die Verwendung von VBA erwähnt und insbesondere das Ereignis Worksheet_change. Könnten Sie mir sagen, wie es geht? –

Antwort

0

VBA = Visual Basic für Anwendungen. Um darauf zuzugreifen, öffnen Sie Excel und drücken Sie Alt + F11. Doppelklicken Sie in dem Visual Basic-Editor (VBE) auf den Blattname, der die dynamische Zelle enthalten wird. In diesem Beispiel ist es nur Sheet1. Nach einem Doppelklick auf diesen Blattnamen öffnet sich auf der rechten Seite ein Codefenster. Wählen Sie am oberen Rand des Codefensters die beiden Dropdown-Menüs Arbeitsblatt auswählen (um anzugeben, dass Sie ein Worksheet-Ereignis wünschen) und dann Ändern (um dem Worksheet_Change-Ereignis mitzuteilen. Es erstellt automatisch eine Zeile mit Private Sub Worksheet_Change(ByVal Target as Range) und wird in etwa so aussehen:

enter image description here

Dann einfach diesen Code kopieren und fügen sie zwischen den Private Sub... und End Sub Linien, so dass sie das Bild passt.

Dim rDynamic As Range 
Dim rMax As Range 
Dim rMin As Range 

Set rDynamic = Me.Range("A1") 
Set rMax = Me.Range("B1") 
Set rMin = Me.Range("C1") 

If Not Intersect(Target, rDynamic) Is Nothing Then 
    If rDynamic.Value < rMin.Value Then rMin.Value = rDynamic.Value 
    If rDynamic.Value > rMax.Value Then rMax.Value = rDynamic.Value 
End If 

und testen sie es heraus sparen In der Arbeitsmappe müssen Sie die .xlsm-Datei verwenden f ormat, und Sie müssen auch Makros aktivieren (Excel sollte Sie auffordern, Makros nach dem Speichern, Schließen und erneuten Öffnen der Arbeitsmappe zu aktivieren oder zu deaktivieren).

+0

funktioniert wie ein Charme ... Prost und danke. –