991 Aufrufe
in Tabellenkalkulation von
Hallo zusammen.

Ich hoffe Ihr könnt mir helfen :-)

Ich habe hier einen Ausschnitt meines Codes:

Private Sub CommandButton1_Click()

Range(Cells(3, 1), Cells.SpecialCells(xlCellTypeLastCell)) _
.Columns(21).Formula = "=vlookup(rc2,Basiswerte!R2C1:R723C22,rc16,false)"
.Columns(21).Formula = .Columns(21).Value

MsgBox ("Berechnungen abgeschlossen.")

End Sub

Wenn ich das Makro nun ausführe kommt es bei:

.Columns(21).Formula = .Columns(21).Value

jedoch zu folgendem Fehler:
"Unzulässiger oder nicht ausreichend definierter Bereich"

Was soll der Code tun?
Nun zunächst soll er in der ganzen Spalte eine Formel eintragen (sverweis). Im Anschluss daran soll soll die Formel mit dem Ergebnis (Wert) überschrieben werden.

Ich hoffe es kann mir jemand helfen.

Herzlichen Dank.

SG
Lisa

2 Antworten

0 Punkte
von
Hallo zusammen!

Hab den Fehler nun doch selbst gefunden...

Es darf nicht nur "Range" heißen, sondern "With Range" und am Ende dann "End With"

Byebye
0 Punkte
von m-o Profi (22.9k Punkte)
Hallo Lisa,

du kannst die Werte auch ohne Umweg mit der Formel einfügen:

Sub formeln()

Dim zeile As Long

For zeile = 3 To ActiveSheet.Cells(Rows.Count, 21).End(xlUp).Row

Cells(zeile, 21) = Application.WorksheetFunction.VLookup(Cells(zeile, 2), Worksheets("Basiswerte").Range("A2:V723"), Cells(zeile, 16).Value, False)

Next zeile

MsgBox ("Berechnungen abgeschlossen.")
End Sub


Richtig müßte dein Code heißen:

Range(Cells(3, 1), Cells.SpecialCells(xlCellTypeLastCell)) _
.Columns(21).Formula = "=vlookup(rc2,Basiswerte!R2C1:R723C22,rc16,false)"

ActiveSheet.Columns(21) = ActiveSheet.Columns(21).Value


Gruß

M.O.

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...