Hallo Birgit,
Also die beiden
Arbeitsblätter habe ca. 1900 Zeilen und 36 Spalten.
danke für die Information. Also rel. kleine Tabelle. Was ich zu Long, Zeilennummern sagte gilt trotzdem auch hier. Kannste es ja immer tun wie angeraten oder nich, deine Sache.
Ein anderer wohlgemeinter Tipp ist, gehe in Extras—Optionen im VB-Editor und klick da an „Variablendeklaration erforderlich“ oder wie das da heißt.
Dadurch hast du automatisch immer in Modulen von Mappen die du neu erzeugst „oben“
Option Explicit stehen.
Schreib das mal in das Modul deines Codes ganz oben hin, also oberhalb von „Sub …“
Dann starte den Code. Schon wird dir angezeigt wodran der Fehler hing.
Var ist nicht deklariert. Hat also den Wert, äh, nix, empty. „Option Explizit“ hat das für dich automatisch beim Start geprüft.
Du hast „Option Explicit“ nicht bislang (ich hoffe du änderst das), dann läuft dein Code schon los ohne Hinweis darauf aber dann kommt die Codezeile die du zeigtest.
Dann soll Excel auf .Cells(nix,2) zugreifen. Mit 1004 sagt dir Excel, ich würde ja gern, aber wo issen die Zeilennummer „nix“ *gg*
Hier der Code von Thomas, wie ich ihn umgesetzt habe, wobei
die vorgenannte Fehlermeldung kommt:
Okay, nachstehend habe ich ihn zumindest lauffähig gemacht aber ohne Testung
Ich versuche mein Möglichstes, aber ich bin Anfängerin. 
Okay, Anfängerin, gut, dann ist der Anfangscode nicht von dir *glaub*. Macht rein gar nix.
Anfängerfehler die du machst kannste ausbügeln wenn dir wie hier jmd. sagt was/warum etwas ein Fehler ist obwohl es evtl. klappt.
Zu Dim
Dim a, b, c as Integer
bedeutet c ist Typ Integer, a und b sind Variant.
Grund, c wurde durch „as Integer“ zum Typ Integer, bei a und b fehlt " as …", und alle Variablen wo das nicht steht gelten als Variant.
Insofern hätte ich im nachfolgenden Code das zweimalige „as Variant“ auch weglassen können, mache ich auch normalerweise bei Variant-Typen, steht nur wegen dir drin.
So, ich glaube sehr ich habe dir als Anfängerin genug harten Lernstoff rübergeknallt
Versuchs zu verdauen. Muß nicht in 5 min sein. Drucks aus über Artikelbaum speichern. Vieles von dem was ich schrieb ist unabhängig von deinem einen Problem hier. Sind wichtige Sachen für alles was du weiterhin mit Vba machen willst.
Am Code selbst gibt es noch was was ich als bedenklich erachte, d.h. der Code funktioniert aber bei anderen Codestartbedingungen könnts Ärcher geben. Aber NEIN, nicht drüber nachdenken was ich meine.
Setze das was ich bislang schrieb um, veruschs zu verinnerlichen. Dann frage hier nach.
Zuviel auf einmal lernen wollen geht schief, peu a peu ist besser.
Gruß
REinhard
Option Explicit
Sub Vergleich\_Name\_kop()
Dim VarVorname As Variant, VarName As Variant, lngRow As Long
lngRow = 3
Do Until IsEmpty(Cells(lngRow, 2))
VarName = Application.Match(Cells(lngRow, 2).Value, Worksheets("Tabelle1").Columns(2), 0)
VarVorname = Application.Match(Cells(lngRow, 1).Value, Worksheets("Tabelle1").Columns(1), 0)
If Not IsError(VarName) Then
If Not IsError(VarVorname) Then
Cells(lngRow, 30).Value = Worksheets("Tabelle1").Cells(VarVorname, 27).Value
Cells(lngRow, 31).Value = Worksheets("Tabelle1").Cells(VarVorname, 28).Value
End If
End If
lngRow = lngRow + 1
Loop
End Sub