es war einmal ein string convert ...

cyph3x
Mahlzeit,

bin neu in VB[A] und habe daher ein kleines Verständnisproblem. Die Zelle einer Tabelle in einem Word-Dokument wird per .Range.Text = "<Zahl>" belegt, etwa so :
code:
1:
ActiveDocument.Tables(3).Cell(3, 10).Range.Text = "7"

Nun kann ich mir den string ganz bequem kopieren und theoretisch wieder in die Zahl 7 konvertieren :
code:
1:
2:
APNstr = ActiveDocument.Tables(3).Cell(3, 10).Range.Text
APN = CInt( APNstr )

Beim CInt() hört der Spass aber auf, Fehler 13 : Typen unverträglich. Obwohl ja gerade CInt() die Konvertierungsfunktion ist.

Komischer Weise funktioniert
code:
1:
2:
APNstr = "7"
APN = CInt( APNstr )

Der Unterschied liegt wahrscheinlich beim nicht druckbaren Zeichen, denn wenn ich hinter das problematische Codestückchen ein
code:
1:
Msgbox APNstr
schreibe, zeigt mir die Msgbox die 7 und unter der 7 ein kleines Quadrat an ( Stringende ? ).
Weiß jemand wie ich den Zellentext trotzdem konvertiert bekomme ??
Wolf
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
Sub test()
Dim apn As Integer
apnstr = ActiveDocument.Tables(1).Cell(1, 1).Range.Text
UserForm1.TextBox1.Value = apnstr
laenge = UserForm1.TextBox1.TextLength - 1
zahl = Mid(apnstr, 1, laenge)
MsgBox prompt:=zahl
apn = zahl
End Sub


Funktioniert leider nur, wenn Du vorher eine Userform1 mit Textbox1 erstellst. Gibt wahrscheinlich noch ne bessere Variante.
cyph3x
Deine Idee, den relevanten Teil einfach rauszukopieren, ist auch nicht schlecht.
Nur hatte ich eigentlich erwartet, dass es in VB ein ordentliches Repertoire an String-Befehlen gibt ( wie in C, da hätte das ohne zu murren geklappt ;).
Jetzt mach ich's ganz simpel und fang den Wert einfach im Programm ab wenn's nicht anders geht.