Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1772to1776
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
Inhaltsverzeichnis

Frage zu Range Befehl

Frage zu Range Befehl
04.08.2020 09:23:09
Phil
Moin Zusammen,
ich habe ein Script, dass in einer Suchen/Ersetzen macht.
In Arbeitsblatt 2 soll er aus der Spalte A schauen, was er suchen soll und ersetzt es durch B.
Dies macht er im ersten Arbeitsblatt für die Spalte die ich wähle.
Leider funktionierte das Script eigentlich, habe aber alles in einem Arbeitsblatt gehabt.
Könnt ihr mir helfen, aktuell sagt das Script nach der Auswahl der Spalte leider nichts mehr ;)
Option Explicit
Sub SuchenErsetzen()
Dim arName1 As Variant
Dim arName2 As Variant
Dim i As Long
Dim lngSpalte As Long
With Sheets("2")
arName1 = .Range("G2:G" & .Cells(.Rows.Count, 7).End(xlUp).Row).Value
arName2 = .Range("H2:G" & .Cells(.Rows.Count, 7).End(xlUp).Row).Value
End With
On Error Resume Next
lngSpalte = Columns(InputBox("Spalte angeben!", "Werte ändern", "A")).Column
On Error GoTo Ende
If lngSpalte > 0 Then
For i = LBound(arName1) To UBound(arName1)
Columns(lngSpalte).Replace arName1(i, 1), arName2(i, 1), xlWhole
Next
End If
Exit Sub
Ende:
'Err.Clear
End Sub
Ich könnte mir vorstellen, dass er unten noch in die richtige Tabelle springen muss?
Vielen Dank für Eure Hilfe!
VG
Philip

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchen? und Ersetzen?
04.08.2020 10:06:15
EtoPHG
Hallo Philip,
Diese Beschreibung und der Code ist für mich mehr oder weniger unverständlich.
Wenn deine Muttersprache nicht Deutsch ist, versuche es mal in Englisch zu formulieren.
Range ist kein Befehl, sondern die Definition eines Zellenbereichs!
Der Code funktioniert jetzt nur in einem Tabellenblatt mit dem Registernamen "2". Was willst du mit 'verschiedenen' Tabellenblätter erreichen?
Es wird nirgends nach irgendetwas gesucht!
Die Bestimmung der Zielspalte mit der InputBoxist völlig abstrus.
In der Zielspalte werden sovielmal die Werte aus Spalte G durch Werte aus Spalte H ersetzt, wie Zellen ab Zeile 2 bis zur letzten nicht leeren Zelle in Spalte G vorkommen. Ist das wirklich dein Ziel?
Kannst du eine Beispielmappe mit Daten und erwarteten Resultaten ins Forum stellen. Das würde vielleicht die Sache verständlicher machen.
Gruess Hansueli
Range
Anzeige
AW: Suchen? und Ersetzen?
04.08.2020 10:32:09
Phil
Moin Hansulin,
ich lade das Script mal hoch, dann wird es klar:
1. Suchen und Ersetzen soll er in Arbeitsblatt "Tabelle1"
2. Die Werte wonach er sucht stehen in Spalte G ab Zeile 2
3. Die werte die er ersetzen soll stehen in Spalte H ab Zeile 2
4. Er soll alle Werte in Spalte A (wenn nicht anders angegeben) entsprechend Pkt. 2+3 ändern
Generell war meine Überschrift falsch gewählt. Es geht einfahc um ein Suchen / Ersetzen Script.
Link: https://www.herber.de/bbs/user/139450.xls
Vielen Dank für Eure Hilfe.
Anzeige
AW: Suchen? und Ersetzen?
04.08.2020 11:32:49
EtoPHG
Hallo Phil,
Versuch es mal so:
Sub SuchenErsetzen()
Dim lRow As Long
Dim lXRow As Long
Dim searchRange As Range
Dim replRange As Range
With Worksheets("2")
Set searchRange = .Range(.Cells(2, 7), .Cells(.Rows.Count, 7).End(xlUp))
Set replRange = .Range(.Cells(2, 8), .Cells(.Rows.Count, 8).End(xlUp))
End With
With Worksheets("Tabelle1")
For lRow = 3 To .Cells(.Rows.Count, 1).End(xlUp).Row
lXRow = 0
On Error Resume Next
lXRow = WorksheetFunction.Match(.Cells(lRow, 1), searchRange, 0)
On Error GoTo 0
If lXRow > 0 Then .Cells(lRow, 1) = replRange(lXRow)
Next lRow
End With
End Sub
Gruess Hansueli
Anzeige
AW: Frage zu Range Befehl
04.08.2020 11:23:55
Gerd
Moin Phil,
einmal stimmen die Spalten nicht.
With Sheets("2")
arName1 = .Range("G2:G" & .Cells(.Rows.Count, 7).End(xlUp).Row).Value
arName2 = .Range("H2:H" & .Cells(.Rows.Count, 7).End(xlUp).Row).Value
End With
Hier ist der Tabellenname anzupassen.
With Sheets("Tabelle1")
If lngSpalte > 0 Then
For i = LBound(arName1) To UBound(arName1)
.Columns(lngSpalte).Replace arName1(i, 1), arName2(i, 1), xlWhole
Next
End If
End With

Gruß Gerd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige