For each cell in Range - wo ist der Fehler

09/11/2009 - 12:41 von Peter Ziegert | Report spam
Hallo,
ich will mit for each einen Range durchlaufen und mit jede Zelle
ansehen. Leider klappt der folgende Code nicht. Kann mir da jemand
aushelfen?
Vielen Dank.
Viele Grüße,
Peter

Public Sub SpalteUebernehmen()

Dim ws1, ws2 As Worksheet
Dim cell, rng_quelle, rng_such, rng_kopie, rng_ziel As Range
Dim such_zeile, quellen_zeile, lngSpalte, lngZeile As Long

such_zeile = 1
quellen_zeile = 1

'Worksheets Namen eintragen
Set ws1 = ActiveWorkbook.Worksheets("Quelle")
Set ws2 = ActiveWorkbook.Worksheets("Ziel")

'Range Quelle angeben - Zeile eintragen
Set rng_quelle = ws1.Rows(quellen_zeile)

'Range Ziel - Suchkriterium eingeben
Set rng_such = ws2.Rows(such_zeile)

'For Each cell In Selection
For Each cell In rng_such

If Not IsEmpty(cell.Value) Then

lngSpalte = rng_quelle.Find(What:=cell.Value).Column

ws1.Activate
lngZeile = Cells(Rows.Count, lngSpalte).End(xlUp).Row
Set rng_kopie = ws1.Range(Cells(quellen_zeile + 1, lngSpalte),
Cells(lngZeile, lngSpalte))
ws2.Activate
Set rng_ziel = ws2.Range(Cells(such_zeile + 1, cell.Column),
Cells((lngZeile - quellen_zeile + such_zeile), cell.Column))
rng_ziel.Value = rng_kopie.Value

End If

Next

End Sub
 

Lesen sie die antworten

#1 Alexander Wolff
09/11/2009 - 15:14 | Warnen spam
Als <news:
ließ
Peter Ziegert verlautbaren, evtl. nachfolgend zitiert:

Public Sub SpalteUebernehmen()

Dim ws1, ws2 As Worksheet
Dim cell, rng_quelle, rng_such, rng_kopie, rng_ziel As Range




Leider akzeptiert VBA keine gemeinsame AS ...-Zuweisung.

Du mussst also alles einzeln als AS Range zuweisen.

Ein Fehler taucht bei Dir nicht auf, weil cell-rng_kopie als Variant
deklariert werden.

Das gilt auch für die danach folgende AS Long-Deklaration.
Moin+Gruss Alexander - MVP for MS Excel - www.xxcl.de - mso2000sp3 --7-2

Ähnliche fragen