Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1584to1588
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

Excel Werte in array übergeben

Excel Werte in array übergeben
22.10.2017 21:47:32
Richard
Hallo,
ich habe einen Code geschrieben mit dem man bestimmte Wörter welche in einer Spalte stehen löschen kann. Das ganze klappt auch recht gut, doch die Berechnungszeit ist sehr lange. Der zu durchsuchende Text steht in Spalte E, das wonach gesucht werden soll steht in Spalte F, wenn ein Wort oder eine Zahl in beiden Spalten vorkommt dann soll es aus Spalte E gelöscht werden.
Sub Zellen_mit_Inhalt_loeschen()
Dim c As Range
For Each c In Intersect(ActiveSheet.UsedRange.Cells, Columns(6))
If InStr(LCase(c.Value), "gs")  0 Then
Range(c, c.Offset(0, 5)).ClearContents
End If
Next c
End Sub
Meine Werte nach denen gesucht wird stehen in einer bestimmten Spalte, und es sind sehr viele. Kann man das evtl noch anders machen? Der Code oben ist nicht die optimale Lösung. Kann man die Wörter die in Spalte E stehen nicht einfach in ein Array übergeben? Das müsste doch schneller gehen.
Würde mich über ein paar Tipps freuen.
Gruß

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Werte in array übergeben
23.10.2017 09:47:49
ChrisL
Hi Richard
Vielleicht so...
Sub t()
Dim lngLetzte As Long, i As Long
Dim arrQuelle As Variant, arrLoeschen As Variant
With ActiveSheet
lngLetzte = .Cells(Rows.Count, 6).End(xlUp).Row
arrQuelle = Application.Transpose(.Range("E2:E" & lngLetzte))
arrLoeschen = Application.Transpose(.Range("F2:F" & lngLetzte))
ReDim arrZiel(1 To lngLetzte + 1)
For i = LBound(arrQuelle) To UBound(arrQuelle)
If InStr(1, LCase(arrQuelle(i)), LCase(arrLoeschen(i))) > 0 Then
arrZiel(i) = WorksheetFunction.Trim(Replace(arrQuelle(i), Mid(arrQuelle(i), _
WorksheetFunction.Search(arrLoeschen(i), arrQuelle(i)), Len(arrLoeschen(i))), ""))
Else
arrZiel(i) = arrQuelle(i)
End If
Next i
.Range("G2:G" & lngLetzte) = Application.Transpose(arrZiel)
End With
End Sub

cu
Chris
Anzeige
AW: Excel Werte in array übergeben
24.10.2017 08:11:55
Matthias
Danke! Ich versuchs mal, aber sieht gut aus.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige