Excel-VBA finden Sie maximale Wert in der Bandbreite auf bestimmten Blatt
Fand ich, dass der folgende code ist immer der max-Wert im Bereich:
Cells(Count, 4)=Application.WorksheetFunction.Max(Range(Cells(m, 1),Cells(n, 1)))
Wie kann ich die Suche in einem bestimmten Blatt? Data
Blatt in diesem Fall
Wie:
Worksheets(d).Cells(x, 4).Value = Worksheets("Data")... ????? FIND MAX ????
InformationsquelleAutor user829174 | 2015-08-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies funktioniert Häufig, fehlt aber eine Referenz:
Den text "Zellen" sollte vorangestellt werden ein Verweis auf das Arbeitsblatt die Zellen sind, würde ich dies schreiben:
Kann dies auch wie folgt geschrieben werden, die klarer ist:
Ich hoffe, das hilft.
Harvey
Application.WorksheetFunction.Max (range( .cells(m,1) ,.cells(n,1) )
warum würde es zu Fehlern führen? (Ich akzeptieren, es ist nutzlos). Dies ist nicht meine Erfahrung gewesen.
Es wird nur zu einem Fehler führen, wenn Sie versuchen Sie ein anderes Arbeitsblatt für die äußere .range-Objekt. (Ich weiß, warum würden Sie... Aber immer noch...) Wie ich schon sagte, werde ich Graben um, und vielleicht stellen Sie eine Frage zu diesem. Interessant scheint.
in diesem Fall erhalte eine Fehlermeldung, ist sehr nützlich, da es wird Ihnen helfen, ein problem erkennen, die andernfalls unbemerkt bleiben... Von voll qualifizierenden Bereich, den Sie definieren, was Sie erwarten, dass die Parameter (dh Zellen auf dem Blatt vor dem range-Objekt). Wenn Zellen sind definiert durch die Variablen dann setzen die Blatt-Objekt in vor der Reihe wird helfen, zu stoppen UNVORHERGESEHENER Umstände NICHT einen Fehler auslösen.
InformationsquelleAutor HarveyFrench
Können Sie eine beliebige gültige excel-Zellbezug auf die range-Methode als string.
In Ihrem Fall wenn, es so zu benutzen, Definition der beiden Zellen an den Rändern des Bereich:
Das ist nicht ganz richtig. Das Ergebnis der Methode range ist eine Sammlung von Zellen. Diese Sammlung ist nicht unabhängig von dem Arbeitsblatt, die Sie sind auf, so dass Sie nicht brauchen, um geben Sie das Arbeitsblatt erneut.
Ja du hast Recht, das hatte ich gar nicht gedacht vorher. Aber, es tut nicht weh, um es in und den code sehr gut lesbar und klar. Ich bin jetzt Fragen, ob Sie erstellen ein range-Objekt mit Bereichen, die auf viele Blätter. Ich würde sagen Nein...tun Sie sich damit einverstanden.
Ich stand corected, range ist ein Objekt, nicht die Methode. Etwas ist seltsam hier. Das ist ein Interessantes problem, ich könnte einfach posten Sie eine Frage zu diesem. Ich kann nicht rellay meinen finger auf Sie, aber es fühlt sich etwas aus mit diesem problem.
MySheet.range(..) ist eine Methode des sheet-Objekt, das gibt ein range-Objekt. Zurückgegebene range-Objekt instanziiert (erstellt), um Verweise auf Zellen, die bereits existieren, werden die Zellen auf den es verweist, ist abhängig von den Parametern, die verwendet wurden. Sie können sich vorstellen das range-Objekt selbst enthält eine große Sammlung von Objekten, die Referenzen vom Typ der Zelle das verweisen auf Zellen, die bereits existieren. OO kann wirklich verwirrend manchmal... MyRange.Parent ist eine Eigenschaft des range-Objekt gibt eine Referenz auf ein sheet-Objekt, das bereits existiert, und ist das Blatt, auf dem die Palette gefunden werden kann.
InformationsquelleAutor vacip
Wenn Sie schnell Bearbeiten wollen Millionen von Zellen zu finden, MAX/MIN, Sie müssen schwerer Maschinen. Dieser code ist dann schneller
Application.WorksheetFunction.Max
.Geklaut von hier: https://www.mrexcel.com/forum/excel-questions/132404-max-min-vba.html
InformationsquelleAutor Przemyslaw Remin