Problem mit .Range()

  • Excel

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von tulla.

    Problem mit .Range()

    Hi Leute!

    Ich hab ein problem mit der .Range() Methode.

    Meine Zeile sieht so aus:

    Visual Basic-Quellcode

    1. ActiveChart.SetSourceData Source:=Sheets("One year timetable data sheet").Range("f" & "10")


    Ganz am Schluss der Zeile steht dort ja: "10". Ich müsste nun diese 10 von einer Variable Abhängig machen. So irgendwie in der Art "10 + i". Dass das so aber nicht geht ist klar.

    Ich habs auch schon mit string und integer umwandlung probiert...

    Kann mir jemand helfen?
    Warum soll das mit einer Variablenbehandlung vor dem Befehl nicht gehen.
    Laut Range Anweisung ist

    Visual Basic-Quellcode

    1. Range("A" & z)


    erlaubt.

    z.Bsp.

    Visual Basic-Quellcode

    1. dim WeitereVariable as integer
    2. dim DefaultVariable as integer
    3. DefaultVariable = 10 ' Keine Ahnung wo das bei dir her kommt
    4. WeitereVariable= WeitereVariable + DefaultVariable
    5. ActiveChart.SetSourceData Source:=Sheets("One year timetable data sheet").Range("f" & WeitereVariable)
    Ich glaube das Zauberwort heist Ascii Code.
    Jeder Buchstabe im Alphabet ist ja in reihe als Ascii Code angebar.
    Bsp. Chr(13) wäre zum Beispiel die Returntaste.
    So kann in der Variablenanweisung der Buchstabe als Chr(WeitereVariable) weiter gegeben werden.

    Man kann z.Bsp. die TextBox gleich als chr() abfragen und hat dann sofort den Ascii für den Buchstaben, aber ich weis ja nicht wo deine "WeitereVariable" her kommt.
    Da gebe ich petaod vollkommen recht.
    Ich spreche i.d.R. in meinen Auswertungen und Abfragen die Cells() direkt an, da ich weis was ich wo hin haben will.
    Die Frage hier war aber Range() deshalb hab ich das garnicht erst erwähnt.

    Bsp.:

    Visual Basic-Quellcode

    1. If IsNull(rs.Fields("Abschluß am")) Then
    2. '> START Einlesen der Daten in die Spalten 1 bis 6
    3. Cells(i, 1).Value = rs.Fields("Datum Auftrag"): Cells(i, 1).NumberFormat = "dd.mm.yyyy"
    4. Cells(i, 2).Value = rs.Fields("BestellNr")
    5. Cells(i, 3).Value = rs.Fields("Zwischenbericht gesendet am"): Cells(i, 3).NumberFormat = "dd.mm.yyyy"
    6. Cells(i, 4).Value = rs.Fields("VN Bericht versandt"): Cells(i, 4).NumberFormat = "dd.mm.yyyy"
    7. Cells(i, 5).Value = rs.Fields("Wiedervorlage"): Cells(i, 5).NumberFormat = "dd.mm.yyyy"
    8. Cells(i, 6).Value = rs.Fields("Datum Auftrag zurück "): Cells(i, 6).NumberFormat = "dd.mm.yyyy"
    9. Cells(i, 7).Value = rs.Fields("Anzahl Geräte geprüft"):
    10. Cells(i, 8).Value = rs.Fields("Bemerkung") & vbLf
    Wenn man durch das Ganze Blatt durch will, ist Cells sicher besser. Wenn man aber nur zum Beispiel, einen Wert daneben braucht, kann man auch offset benutzen

    Visual Basic-Quellcode

    1. MsgBox(ActiveSheet.Range("F10").Offset(0, 2))
    SWYgeW91IGNhbiByZWFkIHRoaXMsIHlvdSdyZSBhIGdlZWsgOkQ=

    Weil einfach, einfach zu einfach ist! :D