2010-11-21 3 views

Antwort

0

Sie können den aktuell gewählten Bereich abrufen, indem

Application.Selection.Address 

mit (der Selection-Eigenschaft gibt ein Range-Objekt), die so etwas wie „$B$4:$J$20“ aussehen wird.

Da haben Sie jetzt einen Bereich mit zu arbeiten, können Sie über jede Spalte mit so etwas wie iterieren:

For Each col In userSelectedRange.Columns 

    ... 

Next 

Die Eigenschaft Spalten wieder gibt ein Range-Objekt, das Sie entweder weiter iterieren oder andere Berechnungen durchführen auf (Ihre genauen Bedürfnisse sind nicht zu deutlich von Ihrer Frage).

Um das berechnete Ergebnis zwei Zeilen oberhalb jeder Spalte (zB eine Zwischensumme oder ähnliches) zu veröffentlichen, versuchen, die Offset-Funktion:

Cells.Offset(-2, 0) 

Wenn Sie die Art der Berechnung zu schaffen, sind in der Lage mehr Einzelheiten der Nähe Ich bin vielleicht in der Lage, mehr Details hinzuzufügen, wie Sie es erreichen.

+0

Danke für die Hilfe. Ich kann die erforderlichen Berechnungen selbst durchführen, mir ist es nur sehr ungewohnt, wie man bestimmte Zellensätze aus Excel auswählt. Die Berechnungen sind entweder nur ein einfacher Durchschnitt jeder Spalte und subtrahieren dann den Durchschnitt von jedem Element in den Spalten. – Stefan

+0

Bietet meine Antwort genügend Hilfe bei der Iteration über Zellensätze, oder benötigen Sie mehr? In VBA gibt es weitere Eigenschaften und Methoden, mit denen Sie in Excel auf verschiedene Weise mit Bereichen arbeiten können. –

+0

Ich glaube, ich muss über den Spaltenbereich iterieren, und dann den Zeilenbereich, um den Durchschnitt jeder Spalte zu erhalten, ja? Aber wenn ich das versuche, stoße ich auf Schwierigkeiten. Kann ich Sie mit meinem Code posten oder ist es möglich, ihn in Kommentare einzufügen? – Stefan

Verwandte Themen