Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Array mit Range füllen
Micha
Hallo Forum,
ich möchte zwei Values in ein Array laden, welches dann zum Suchen/Ersetzen benutzt werden soll. Hintergrund ist der Teilweise Einsatz kyrillischer Schriftzeichen, die man ja im VBA nicht benutzen kann.
Dim arrSrc
arrSrc = wsGer.Range("A13:A14").Value
Worksheets("Sheet1").Columns("A").Replace What:=arrSrc, _
Replacement:="Kostengruppe", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False
Was mach ich hier falsch? Denn es passiert leider nix beim Suchen/Ersetzen.
Kann mir jemand helfen?
Gruß

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Array mit Range füllen
03.05.2010 13:01:04
fcs
Hallo Micha,
wenn du mehrere Suchbegriffe in einem Array übergibst, dann muss du in einer Schleife die Werte des Arrays beim Ersetzen abarbeiten. Da du auch kyrillische Zeichen suchst, muss du ggf. den Parameter MatchByte auf True setzen.
Gruß
Franz
Sub aaTest()
Dim arrSrc, iI As Long
arrSrc = wsGer.Range("A13:A14").Value
For iI = LBound(arrSrc) To UBound(arrSrc)
Worksheets("Sheet1").Columns("A").Replace What:=arrSrc(iI), _
Replacement:="Kostengruppe", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False   ', MatchByte:=True ' MatchByte-Paramater wegen kyrillisch?
Next
End Sub

Anzeige
AW: läuft bei mir nicht..
03.05.2010 14:11:17
JOWE
Hallo Franz,
der Code sieht gut aus, läuft bei mir aber weder in 2007 noch 2003:
Habe 'wsGer' nach 'Worksheets("Tabelle1")' und 'Worksheets("Sheet1")' nach 'Worksheets("Tabelle2")' geändert.
"Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"
Bleibt in der Zeile mit dem Replace-Befehl hängen; betrifft arrSrc(iI) ?
Lasse ich mir im Debugmodus den Wert von iT anzeigen steht der bei 1.
Aber offenbar ist das Datenfeld leer; denn arrSrc(iT) produziert den Fehler!
Gruß
Jochen
AW: läuft bei mir nicht..
03.05.2010 14:20:29
Micha
Ich bekomme den selben Fehler. Und es liegt auch an arrSrc (Subscript out of range)...
Anzeige
AW: läuft bei mir nicht..
03.05.2010 15:15:22
JOWE
so vllt.?
Sub aaTest()
Dim arrSrc
Dim iI As Long
arrSrc = Array(Worksheets("Tabelle1").Range("A13"), Worksheets("Tabelle1").Range("A14"))
For i = 1 To 2
On Error Resume Next
Worksheets("Tabelle2").Columns("A").Replace What:=arrSrc(i), _
Replacement:="Kostengruppe", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False   ', MatchByte:=True ' MatchByte-Paramater wegen kyrillisch?
Next
End Sub
Gruß
Jochen
AW: läuft bei mir nicht..
03.05.2010 15:13:28
fcs
Hallo Jochen,
bei Zuweisung der Werte eines Zellbereichs zu einer Variantvariablen muss der Array-Wert auch mit Zeile/Spaltenbezug angegeben werden hier also arrSrc(iI, 1). Hatte ich übersehen.
Gruß
Franz
Sub aaTest()
Dim arrSrc, iI As Long, wsGer As Worksheet
Set wsGer = Worksheets("Tabelle2")
arrSrc = wsGer.Range("A13:A14").Value
For iI = LBound(arrSrc) To UBound(arrSrc)
Worksheets("Sheet1").Columns("A").Replace What:=arrSrc(iI, 1), _
Replacement:="Kostengruppe", LookAt:= _
xlPart, SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False   ', MatchByte:=True ' MatchByte-Paramater wegen kyrillisch?
Next
End Sub

Anzeige
AW: Jetzt läufts! Danke oT
03.05.2010 15:23:06
JOWE
Vielen Dank JOWE!!!
03.05.2010 15:36:35
Micha
Ist teilweiser Ersatz m.xlPart Absicht? orT
03.05.2010 13:04:01
Luc:-?
Gruß Luc :-?
Alles klar, erledigt! owT
03.05.2010 13:06:26
Luc:-?
:-?

113 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige