Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
864to868
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
864to868
864to868
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit Replace Funktion

Problem mit Replace Funktion
04.05.2007 21:27:50
Silk
Hi,
ich hab ein seltsames Problem mit der Replace Funktion.
Ich muss in einem String das Mju Zeichen "µ" ersetzen durch "u".
Das Zeichen "" hat den asc Code 181.
Der Aufruf
curCell = "µ"
curCell = replace(curCell, Chr(181), "u")
ändert den String jedoch nicht.
Der umgekehrte Weg funktioniert jedoch. curCell enthält nach dem Aufruf "µ":
curCell = "u"
curCell = replace(curCell, "u", Chr(181))
Was mache ich falsch?
Hab schon versucht, mir selber eine Replace Funktion mittels InStr und Mid zu schreiben, doch die InStr Funktion kann das Zeichen auch nicht finden....
Gruß

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nur ein vorschlag ohne es getestet zu haben
04.05.2007 21:39:00
Rocky
nur ein vorschlag ohne es getestet zu haben
ist zwar keine Lösung doch umgeht vieleicht das problem
curCell = "µ"
curCell = replace(curCell, "µ", "u")

Gruß Rocky



Wenn unter den Blinden der Einäugige König ist, dann findet man hier die Herren der Ringe!


Anzeige
AW: nur ein vorschlag ohne es getestet zu haben
04.05.2007 21:44:00
Silk
Bringt leider keine Änderung....

nur ein vorschlag ohne es getestet zu haben
04.05.2007 21:56:00
Rocky
Hast du mal das zeichen kopiert und in den Code eingefügt.
Vieleicht suchst du ja nach Fisch obwohl es Fleisch ist und sich die zeichen nur sehr Ähnlich sehen

Gruß Rocky



Wenn unter den Blinden der Einäugige König ist, dann findet man hier die Herren der Ringe!


Anzeige
AW: nur ein vorschlag ohne es getestet zu haben
04.05.2007 22:11:00
Silk
Ne, hab ich schon alles überprüft.
Wenn ich mir mit asc() den ascii Wert des Zeichens hole, ergibt das auch 181.

AW: probier mal ...
04.05.2007 22:49:00
Silk
Hi,
dein Code funktioniert! Ich glaubs nicht!
Wenn ich deine Funktionen in meinem Code aufrufe fuktioniert es auch.
Mein Code funktioniert allerdings nicht. Obwohl ich genau dasselbe mache:
curCell = Replace(curCell, "µ", "u")
Es muss mit der Initialisierung von curCell zusammenhängen:
curCell = "µu"
curCell = Replace(curCell, "µ", "u")
funktioniert
curCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex) ' Nach diesem Aufruf enthält curCell "µ"
curCell = Replace(curCell, "µ", "u")
funktioniert nicht
... ich bin ratlos....

Anzeige
AW: probier mal ...
04.05.2007 23:41:00
Erich
Hallo,
probier mal

Sub tst()
Dim curCell As String, colIndex As Integer
colIndex = 1
curCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)
MsgBox "Vorher: " & curCell
curCell = Replace(curCell, "µ", "u")
MsgBox "Nachher: " & curCell
End Sub

Das ist im Prinzip dein Code. Was zeigen die MsgBoxen an?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: probier mal ...
04.05.2007 23:50:00
Silk
Hallo Erich,
vorher: μ
nachher: μ

AW: probier mal ...
04.05.2007 23:58:05
Erich
Hallo,
dan check bitte mal

Sub tst2()
Dim curCell As String, colIndex As Integer
colIndex = 1
curCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)
MsgBox Asc(curCell) & " " & Asc("µ")
End Sub

Wird zwei mal 181 angezeigt?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: probier mal ...
05.05.2007 00:10:00
Silk
Hi,
ja, zweimal 181

AW: probier mal ...
05.05.2007 00:19:00
Erich
Hallo,
ein Vorschlag: Lad doch mal eine Mappe hoch, nur mit der einen µ-Zelle.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: probier mal ...
04.05.2007 23:47:26
Gerd
Hi,
falls
Msgbox chr(181)= ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)
FALSCH liefert, dann steht dort nicht exat dieses Zeichen drin.
Gruß Gerd

AW: probier mal ...
05.05.2007 00:08:47
Silk
Hi,
MsgBox Chr(181) = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)
liefert falsch
MsgBox Asc(ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex))
liefert 181 !

AW: probier mal ...
05.05.2007 00:05:00
fcs
Hallo SilkHunter,
du solltest die Deklaration der Variablen checken. Damit der erstzte Wert in die Tabelle zurückgeschrieben wird muss curCell ein Range-Objekt sein. Auf das ".Value" kann man Verzichten, aber ich schreib es der Vollständigkeit halber oft mit.
etwa so:

Dim curCell As Range
Set curCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)
curCell.Value = Replace(curCell.Value, "µ", "u")


Gruß
Franz

Anzeige
AW: probier mal ...
05.05.2007 00:11:00
Erich
Hallo Franz und Silk Hunter,
den Verdacht, dass es eigentlich um eine Änderung des Zellwerts geht, hatte ich auch schon...
Hier noch zwei Möglichkeiten für diesen Fall:

Sub tst3()
Dim colIndex As Integer
colIndex = 1
With ActiveWorkbook.Worksheets("Daten")
.Cells(2, colIndex) = Replace(.Cells(2, colIndex), "µ", "u")
End With
End Sub
Sub tst2x()
Dim curCell As Range, colIndex As Integer  ' curCell ist jetzt Range!
colIndex = 1
Set curCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)
'  ===  Mit Set wird curCell ein Rangeobjekt, das die Zelle repräsentiert.
' ab hier könnte/sollte man curCell.Value statt nur curCell schreiben
MsgBox "Vorher: " & curCell
curCell = Replace(curCell, "µ", "u")
MsgBox "Nachher: " & curCell
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: probier mal ...
05.05.2007 00:22:00
Silk
Hi,
hab beides ausprobiert. Gibt aber keine Änderung.
Ich habe curCell überigens als String deklariert.
Ist sowas überhaupt ok?
Dim currentCell As String
currentCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex)

AW: probier mal ...
05.05.2007 00:30:21
Erich
Hallo,
ja, das ist ok, ausführlicher kann man
currentCell = ActiveWorkbook.Worksheets("Daten").Cells(2, colIndex).Value
schreiben.
Der Wert der Zelle wird in einen String umgewandelt und der Variablen curCell zugewiesen.
Wie stehts mit meinem Vorschlag dein µ in einer Mappe hochzuladen?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: probier mal ...
05.05.2007 00:39:00
Silk
Hi,
ja, meine Mappe ist mittlerweile ein sehr grosses Projekt.
Ich habe gerade den entsprechenden Code in ein neues Projekt kopiert. Der Fehler tritt dort auch auf. Die MessageBox zeigt bei mir μ
https://www.herber.de/bbs/user/42268.xls

AW: probier mal ...
05.05.2007 02:48:11
fcs
Hallo Silk Hunter,
ich hab jetzt mit der Datei unter Excel97 gearbeitet und da treten die verschiedensten Phänomene auf.
Ich hab mal verschiedene Textfunktionne probiert und war verwiirt.



Tabellenblattname: Daten
B                   C                  D
1  Originalwert                           Kopie von B2
2             μ   wat nu? nicht gleich?              μ
3           181                      ok
4                                     μ              u
5                      Berechneter Wert
6           181                       µ              1
Benutzte Formeln:
B3:  =CODE(B2)
C2:  =WENN(B2=C6;"ok";"wat nu? nicht gleich?")
C3:  =WENN(B2=D2;"ok";"wat nu? nicht gleich?")
C4:  =WECHSELN(B2;ZEICHEN(181);"u")
C6:  =ZEICHEN(B6)
D4:  =WECHSELN(B2;D2;"u")
D6:  =SUCHEN(D2;B2;1)


Der einzig erfolgreiche Weg das mysteriöse mü zu ersetzen ist:
Kopiere eine Zelle mit dem mysteriösen mü. Lösche andere Zeichen in der Zelle.
Benutze jetzt diese Zelle um das mü durch ein u zu ersetzen.
Gruß
Franz
Dein Makro schaut dann etwa so aus:


Private Sub CommandButton1_Click()
Dim wsSource As Worksheet
Dim curCell As String
Dim colIndex As Integer, mue As String
colIndex = 2
Set wsSource = ActiveWorkbook.Worksheets("Daten")
curCell = wsSource.Cells(2, colIndex)
mue = wsSource.Cells(2, 4).Value
curCell = Replace(curCell, mue, "u")
MsgBox curCell
End Sub


Anzeige
AW: Merkwürdiges µ
Erich
Hallo zusammen,
unter Excel XP (und WinXP SP2) bekomme ich mit CODE 63 statt 181 angezeigt:
 ABCD
1 Wert Formel
2Originalµ µ
3 63 =CODE(B$2)
4 ? =ZEICHEN(63)
5 µ =ZEICHEN(181)
6 FALSCH =B$2=B4
7 FALSCH =B$2=B5
8 µ =WECHSELN(B$2;B4;"uuuu")
9 µ =WECHSELN(B$2;B5;"uuuu")
10    
11Kopie von B2µ µ
12 63 =CODE(B11)
13 WAHR =IDENTISCH(B$2;B11)
14 uuuu =WECHSELN(B$2;B11;"uuuu")
15    
16LINKS(B2;1)µ =LINKS(B$2;1)
17 63 =CODE(B16)
18 WAHR =IDENTISCH(B$2;B16)
19 uuuu =WECHSELN(B$2;B16;"uuuu")

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Merkwürdiges µ
Gerd
Hi,
bei Tageslicht. mü ist nicht gleich mü.
Es kommt darauf an, woher bzw. mit welcher Schriftart es eingefügt wurde.

Die Datei https://www.herber.de/bbs/user/42270.xls wurde aus Datenschutzgründen gelöscht


Füge ein neues, passendes ein.
Gruß Gerd

AW: Merkwürdiges µ
Silk
Hallo und guten Morgen alle zusammen!
Es liget anscheinend wirklich daran, wie man das mü eingefügt hat. In meiner Tabelle hab ich es damals über die Zeichencodetabelle von Windows eingefügt. Jetzt hab ich mal das Zeichen µ aus meinem Sourcecode in meine Tabelle übertragen und siehe da, es funktioniert! Seltsam war nur, das gestern trotz identischen ascii code der Vergleich fehlschlug. Ich hab jetzt zusätzlich im Sourcecode auch noch das Zeichen Chr(63) ersetzen lassen (zur Sicherheit). Auf jeden Fall scheint dies Problem jetzt gelöst zu sein.
Abschliessend bleibt zu sagen, dass ich euch allen für eure tolle Unterstützung (zur nächtlichen Stunde!) danken möchte. Dies Forum ist wirklich Klasse! Vielen Dank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige