2016-07-25 8 views
0

Ich versuche ein Makro zu setzen, das irgendwann eine Zelle auf eine Summe von ein paar Zellen setzt. Die Zellen, die summiert werden, sind jedoch variabel und basieren auf anderen Dingen (und ändern sich bei jeder Iteration des Makros). Ich habe das Makro so codiert, dass ich weiß, in welcher Zeile sich die Zellen befinden, sowie die Spalte der Anfangszelle und die Spalte der Endzelle (dh vielleicht werden A600 bis A606 summiert). Allerdings habe ich diese Spalten- und Zeilenzuweisungen auf Variablen wie Y, Xstart und Xend festgelegt. Wie habe ich die Summe diese Bereiche auswählen, sind die Zellen rein durch Variablen definiert?Bezugnehmend auf einen Bereich basierend auf Variablen in Excel?

set rng = "=SUM(& Y & Xstart &, & Y & Xend &)" 

Das war meine erste Schätzung?

Antwort

3

Verwendung festgelegt, wenn eine Referenz auf ein Objekt gesetzt wird. Range.Formaula nehmen Sie ein String-Argument und so auch "= Sum()".

Sub Example() 

    Dim Xstart As Long, Xend As Long 
    Dim TargetRange As Range, SumRange As Range 
    Dim Y as string 
    Y = "B" 

    Xstart = 2 
    Xend = 100 

    Set SumRange = Range(" & Y & & Xstart & ":" & Y & Xend) 
    Set TargetRange = Range("A1") 

    TargetRange.Formula = "=SUM(" & SumRange.Address & ")" 

End Sub 
+0

Was ist Y ist eine Variable obwohl? Die Spalte nicht beziehen. –

+0

Was passiert, wenn Y ein * –

+0

ist? Ich habe meine Antwort aktualisiert, wodurch Y zu einer Variablen wurde. Die Hauptsache, dass wir eine Zeichenfolge erstellen, die in die Formeleigenschaft des Zielbereichs übernommen wird. Danke für das Häkchen! –