Excel-VBA: Range-Objekt

Hallo zusammen,

angenommen ich habe eine Datenmatrix Range (Anfang:Ende), wobei „Ende“ ein variabler Wert und „Anfang“ eine Konstante z.B. „A1“ ist.
Nun möchte ich abhängig von der Variable eine Formel bis zum Ende der Matrix runterkopieren.
Folgendes habe ich gemacht:

Sub Matrix_Erkennen()

Dim Zeile As String
For Each c In Range(„A1:A1200“) 'Prüfe letzten Wert der Matrix
If c.Value = „“ Then
Range(„M1“).Select 'Referenzzelle zum Kopieren auswählen
Zeile = c.Row
Ende = „M“ + Zeile
Kopieren Ende
Exit Sub
End If
Next c

End Sub

Public Sub Kopieren(Ende)

Rem Kopiert Formel nach unten bis Matrix endet
Anfang = „A1“
Selection.AutoFill Destination:=Range("&Anfang& : &Ende&"), Type:=xlFillValues

End Sub

Wenn ich diesen Code kompiliere erscheint folgende Fehlermeldung:
„Die Methode Range für das Objekt_Global ist fehlgeschlagen“

Wie heisst die korrekte Syntax für das Range-Objekt, wenn ich mit Variablen und Konstanten arbeite?

Danke für Eure Antworten

Gruss Salvo

Hallo Salvo,

dus solltest alle vars dekalrieren:
dim anfang as string
(oder wie war das in VBA?)

bab´s nicht probiert, aber:
Anscheinend erwartet Range einen String, also gib ihm einen:

Public Sub Kopieren(Ende)

Rem Kopiert Formel nach unten bis Matrix endet
Anfang = „A1“
Selection.AutoFill Destination:=Range(Anfang & „:“ & Ende),
Type:=xlFillValues

End Sub

mfg

Dirk

Hallo,
Müsste die Range-Anweisung nicht so lauten(?):

Selection.AutoFill Destination:=Range(Anfang & ":" & Ende), Type:=xlFillValues

Mit dem Dem Bereich

&Anfang&:&Ende

fängt Excel sicher nichts an.

Ein

Option Explicit

ist auch empfehlenswert, das „zwingt“ Dich dann alle Variablen mit ihrem Typ zu deklarieren.

Morrighan

Sub Matrix_Erkennen()

Dim Zeile As String
For Each c In Range(„A1:A1200“) 'Prüfe letzten Wert der Matrix
If c.Value = „“ Then
Range(„M1“).Select 'Referenzzelle zum Kopieren auswählen
Zeile = c.Row
Ende = „M“ + Zeile
Kopieren Ende
Exit Sub
End If
Next c

End Sub

Public Sub Kopieren(Ende)

Rem Kopiert Formel nach unten bis Matrix endet
Anfang = „A1“
Selection.AutoFill Destination:=Range("&Anfang& : &Ende&"),
Type:=xlFillValues

End Sub

Wenn ich diesen Code kompiliere erscheint folgende
Fehlermeldung:
„Die Methode Range für das Objekt_Global ist fehlgeschlagen“

Wie heisst die korrekte Syntax für das Range-Objekt, wenn ich
mit Variablen und Konstanten arbeite?

Danke für Eure Antworten

Gruss Salvo