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

characters.text = "" funktioniert nicht.

characters.text = "" funktioniert nicht.
04.02.2023 12:59:41
Peter
Hallo alle zusammen,
ich möchte gerne mit
Tabelle2.Cells(row, col).Characters(InStr(1, Tabelle2.Cells(row, col).Value, marker), Len(marker)).Text = ""
einen Substring, der in der Variable marker enthalten ist aus dem Zellinhalt entfernen, sodass die Formatierung nicht verloren geht. Dafür möchte ich mit "" diesen Substring überschreiben. (Es ist aber egal, ob der Ersatz leer ist oder eine beliebige Zeichenkette enthält. Es funktioniert trotzdem nicht)
Die Ausgabe
MsgBox(Tabelle2.Cells(row, col).Characters(InStr(1, Tabelle2.Cells(row, col).Value, marker), Len(marker)).Text)
liefert jedenfalls den richtigen, zu ersetzenden Substring.
Leider komme ich selbst nicht drauf. Hat jemand eine Idee, wieso das ersetzen des Substrings durch "" nicht funktioniert?
Danke schon mal im Voraus!

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: characters.text = "" funktioniert nicht.
04.02.2023 13:05:43
Piet
Hallo
auf die Schnelle, ungetestet, ich würde es so machen. Es spielst keineRolle ob "OldWert" existiert oder nicht!:
Tabelle2.Cells(row, col).Replace "OldWert", "", xlPart
mfg Piet
AW: characters.text = "" funktioniert nicht.
04.02.2023 13:09:04
Peter
Danke für die schnelle Antwort!
So habe ich es zunächst auch gemacht. Das funktioniert auch top, allerdings geht dadurch die Formatierung der Zelle (insbesondere Schriftfarben etc.) verloren. Diese müssen aber unbedingt erhalten bleiben.
AW: characters.text = "" funktioniert nicht.
04.02.2023 13:16:36
Piet
Hallo
noch mal Upps, bisher sind bei mir bei der Range.Replace Methode nach meinem Wissen keine Formatierungen verloren gegangen. Das ist mir neu! Müsste man aber mal konkret testen.
Frage: könnte es sein das durch Replace Excel eine automatische Formatierung vornimmt, weil sich z.B. Werte in ein Datum geaendert haben? Das waere für mich logisch.
mfg Piet
Anzeige
AW: characters.text = "" funktioniert nicht.
04.02.2023 13:20:17
Peter
Hallo Piet,
nein, eine automatische Formatierung liegt hier nicht vor.
Ich kann das Verhalten mit Replace aber definitiv bestätigen. Bei der Anwendung auf eine Zelle gehen Schriftfarbe von Substings, Fett von Substrings, Kursiv von Substrings etc. definitiv verloren.
Ach hier wird vermutlich das Missverständnis liegen. Die Formatierung der gesamten Zelle bleibt erhalten. allerdings nicht wenn die Formatierung nur auf einzelne Substrings angewendet wurde. Die gehen definitiv verloren.
Vg Peter
AW: characters.text = "" funktioniert nicht.
04.02.2023 13:06:03
RPP63
Moin!
Mittels Replace(String, Substring, "")
?
Gruß Ralf
Achtung!
04.02.2023 13:07:42
RPP63
Wichtig zu wissen:
Piet nutzt die Range.Replace-Methode
Ich nutze die Replace-Function!
Anzeige
AW: Achtung!
04.02.2023 13:11:03
Piet
Hallo Ralf
Upps, ich wusste garnicht das es da Unterschiede gibt! Hauptsache beides funktioniert.
mfg Piet
AW: Achtung!
04.02.2023 13:13:00
Peter
Hallo Ralf,
auch hier habe ich das Problem mit den verschwindenden Formatierungen.
Ich weiß, dass es mit characters(start, length).text = "" grundsätzlich funktioniert, den Zellinhalt zu manipulieren ohne die Formatierung zu verlieren. Ich habe das auch schon mal erfolgreich gemacht. Doch im jetzigen Projekt funktioniert das komischer weise nicht mehr. Ich vermute, dass ich irgend etwas vergessen habe zu definieren oder irgend ein anderer dummer Fehler vorliegt... Ich sehe ihn selbst leider nicht und Dr. Google hat mir auch nciht wirklich bei meinem Problem geholfen.
Anzeige
AW: Achtung!
04.02.2023 13:20:35
Piet
Hallo
aaah, jetzt mit characters(start, length).text = "" verstehe ich dein Problem. Stimmt, das ist ein Problem!
Dafür habe ich leider keine Lösung parrat, das korrigiere ich bei mir einfach von Hand.
Vielleicht weiss der Kollege dazu Rat?
mfg Piet
AW: characters.text = "" funktioniert nicht.
04.02.2023 13:41:19
Oberschlumpf
Hi Peter
viele versuchten schon mit mehr-oder-weniger-raten dir zu helfen - leider erfolglos
Könnte es vielleicht nicht hilfreicher für die Antworter sein, wenn du uns per Upload eine Bsp-Datei zeigst, deren Bsp-Daten durch die gewünschte Manupilation zu genau dem Fehler führt, den du versuchst, zu beseitigen?
Ciao
Thorsten
Anzeige
AW: characters.text = "" funktioniert nicht.
04.02.2023 14:06:50
Peter
Hallo Thorsten,
ja, ich denke du hast recht. Im Anhang findest du eine Beispieldatei.
https://www.herber.de/bbs/user/157637.xlsm
Viele Grüße
Peter
AW: characters.text = "" funktioniert nicht.
04.02.2023 14:28:49
Nepumuk
Hallo Peter,
bei Characters-Eigenschaft gibt es eine Längenbeschränkung von 256 Zeichen. Deine Texte sind zu lang dafür.
Gruß
Nepumuk
AW: characters.text = "" funktioniert nicht.
05.02.2023 11:33:30
Peter
Ach... Das ist blöd. das wusste ich nicht! Danke für den Hinweis!
AW: characters.text = "" funktioniert nicht.
05.02.2023 02:07:58
Piet
Hallo Peter
bei Nepumuk habe ich gehofft das er eine Lösung parat hat, ein exellenter Ratgeber. Um Klassen besser we ich!
Das scheint eine harte Nuss zu sein! Mal schauem ob wir zwei, Oberschlumpf und ich, eine Lösung finden.
Muss mal drüber schlafen .... Vielleicht habe ich morgen eine Idee?
mfg Piet
Anzeige
AW: characters.text = "" funktioniert nicht.
05.02.2023 13:37:48
Piet
Hallo Peter
ich denke ich habe einen Lösungsansatz für dich. Das Makro läuft noch nicht einwandfrei!
Aber der Lösungsweg kan dir helfen es selbst fertig zu entwickeln. Würde mich freuen!
In diesem Array liste ich mir alle Namen und Farben der Originalzelle mit Start und Länge auf.
Es funktioniert noch nicht richtig beim zurück generieren. Aber der Weg dahin dürfte dich interessieren.
Heute habe ich keie Zeit es fertig zu entwickeln, muss mich um die Familie kümmern.
Schau bitte mal ob dir das weiterhilft? Herzliche Grüsse aus Ankara.
mfg Piet
  • Sub Characters_test()
    Dim arFont(), a, i, j, n, az, x, v, Fb, Ln1
    For j = 1 To Len(ActiveCell)
    If ActiveCell.Characters(j, 1).Font.ColorIndex > 1 Then
       For i = j To Len(ActiveCell)
          If ActiveCell.Characters(i, 1).Font.ColorIndex  2 Then Exit For
          n = n + 1
       Next i
       ReDim Preserve arFont(0 To 5, az)
       arFont(0, az) = ActiveCell.Characters(Start:=j, Length:=n).Text
       arFont(1, az) = ActiveCell.Characters(Start:=i + 10, Length:=10).Text
       arFont(4, az) = ActiveCell.Characters(Start:=j, Length:=1).Font.ColorIndex
       arFont(2, az) = j
       arFont(3, az) = n
       az = az + 1: n = 0
    End If
    Next j
    Ln1 = Len(ActiveCell)
    ActiveCell.replace "[FB]", ""
    ActiveCell.replace "[FG]", ""
    'v=Len Versatz nach Replace
    v = Ln1 - Len(ActiveCell)
    For j = 0 To UBound(arFont)
       x = arFont(2, j) - v
       n = arFont(3, j)
       Fb = arFont(4, j)
       Txt = arFont(0, j) & arFont(1, j)
       a = InStr(x, ActiveCell, Txt)
       ActiveCell.Characters(Start:=a, Length:=n).Font.ColorIndex = Fb
    Next j
    End Sub

  • Anzeige
    AW: characters.text = "" funktioniert nicht.
    05.02.2023 13:47:42
    Piet
    Nachtrag
    für Fett, Kursiv, Unerstrich oder Size müsstest du jeweils ein Array einrichten und zurück generieren.
    Viel Schreibarbeit, aber ich denke es lont sich bei vielen Daten
    Vielliecht können die Kollegen meine Idee vereinfachen/ verbessern. Ware schön ....
    mfg Piet

    302 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige