Anzeige
Archiv - Navigation
1660to1664
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

Typen unverträglich

Typen unverträglich
17.12.2018 11:33:46
Michèle
Hallo zusammen
Nachfolgenden Code hatte ich bisher in einem kleinen File (nur Spalte A, verschiedene Wörter pro Zelle und Zeile) getestet, er funktionierte einwandfrei. Nun habe ich den Code in mein grosses File (mit zig Tabs und jeweils Zellen A-AC und 150 Zeilen pro Blatt) eingefügt. Wenn ich nun das Makro laufen lasse, dann spuckt er mir den Laufzeitfehler 13, Typen unverträglich für die "Do While" Zeile aus. Kann mir jemand sagen, wieso das so ist und was ich ändern muss?
Option Explicit
Sub Modifiziert()
' Finde das Wort modifiziert und färbe es ein
Dim lngFound As Long
Dim rngCell As Range
Const strSearch As String = "modifiziert"
Application.ScreenUpdating = False
For Each rngCell In ActiveSheet.UsedRange
lngFound = 1
Do While InStr(lngFound, rngCell.Value, strSearch) > 0
With rngCell.Characters(InStr(lngFound, rngCell.Value, strSearch), Len(strSearch))
.Font.ColorIndex = 46
End With
lngFound = InStr(lngFound, rngCell.Value, strSearch) + 1
Loop
Next rngCell
Application.ScreenUpdating = True
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Typen unverträglich
17.12.2018 11:45:12
Daniel
Hi
in solchen Fällen solltest du immer erstmal die in dieser Zeile verwendeten Werte und Variablen überprüfen, dh:
welche Zelle ist rngCell (Adresse) und welchen Wert enthält sie?
Laufzeitfehler 13 lässt auf einen Fehlerwert schließen.
wenn dem so ist, gäbe es zwei Möglichkeiten zu abhilfe:
lasse die Schleife nur über Zellen mit Textinhalt laufen:
For Each rngCell In ActiveSheet.UsedRange.Cells.SpecialCells(xlcelltypeconstants, 2)
oder verwende rngCell.Text anstelle von rngCell.Value:
Do While InStr(lngFound, rngCell.Text, strSearch) > 0
Gruß Daniel
Anzeige
AW: Typen unverträglich
17.12.2018 11:58:39
EtoPHG
Hallo Michèle,
Mit einem Test der sich nur auf Spalte A bezieht und der Zellinhalt von dir manuell eingegeben wurde, dürfte der Code wohl funktioniert haben. Nun benutzt du den gleichen Code für rund 4350 Zellen! Das muss schief gehen, wenn nur eine Zelle einen Fehlerwert (#BEZUG, #NV etc.) enthält.
Ich würde das auf Spalten einschränken die wirklich Text enthalten, bzw. "modifiziert" enthalten können.
Du kannst es mal so probier:
Sub Modifiziert()
' Finde das Wort modifiziert und färbe es ein
Dim lngFound As Long
Dim rngCell As Range
Const strSearch As String = "modifiziert"
Application.ScreenUpdating = False
On Error Resume Next
For Each rngCell In ActiveSheet.UsedRange
lngFound = 1
Do While InStr(lngFound, rngCell.Value, strSearch) > 0
If Err.Number > 0 Then
Err.Clear
Exit Do
Else
With rngCell.Characters(InStr(lngFound, rngCell.Value, strSearch), Len(strSearch))
.Font.ColorIndex = 46
End With
End If
lngFound = InStr(lngFound, rngCell.Value, strSearch) + 1
Loop
Next rngCell
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Gruess Hansueli
Anzeige
AW: Typen unverträglich
17.12.2018 12:50:26
Michèle
Hallo Hansueli
Der Tipp mit dem Einschränken hat funktioniert, ich habe nun einfach die Range so definiert:
For Each rngCell In Range("AA2", Range("AA" & Rows.Count).End(xlUp))
Das hat dann auch schon gereicht.
Vielen Dank!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige