Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1468to1472
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 VBA erkennt vermeintlichen String immer als

Excel VBA erkennt vermeintlichen String immer als
11.01.2016 14:09:50
SeamanX
Hallo,
versuche aus einer Excel-Datei einen String auszulesen, der leider immer als Zahl interpretiert wird.
Code:

Sub auslesen()
Workbooks.Open Filename:="C:\...\test.xls"
Debug.Print Format(ActiveWorkbook.Worksheets(1).Cells(1, 1).Value, "&")
Debug.Print CStr(ActiveWorkbook.Worksheets(1).Cells(1, 1).Value)
Debug.Print ActiveWorkbook.Worksheets(1).Cells(1, 1).Value
ActiveWorkbook.Close savechanges:=False
End Sub

Die Excel-Datei ist leider keine richtige Excel-Datei, sondern eine Textdatei mit der "falschen" Dateiendung .xls in der der "String" 010.020 steht.
Als Debug Ausgabe des obigen Codes erhalte ich immer: 10,02
Wenn ein Buchstabe in dem String enthalten ist, besteht kein Problem und der komplette String bleibt unberührt.
Wie kann ich Excel dazu zwingen die eingelesenen Daten als unberührten String zu behandeln?
Tritt das Problem schon beim Befehl Workbooks.Open auf? Gibt es Alternativen oder weitere Parameter?
Ich habe das Problem abstrahiert. Der Original-Algorithmus behandelt eine vielzahl dieser "unechten" Excel-Dateien mit vielen Zeilen und Spalten, wobei die Spalten mit einem Tabstopp getrennt sind.
Eine Modifizierung dieser Dateien sollte daher nur als letztes Mittel in Betracht gezogen werden.
Versucht habe ich trotzdem, die Dateien in Excel unter einem richtigen Excel-Dateiformat abzuspeichern.
Wenn die Datei manuel geladen und gespeichert wird klappt dies auch. Bei der automatisierten Variante wandeln auch dort Excel wieder den String in eine Zahl um.
Bin für jede Hilfe dankbar!
Lieben Gruß

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel VBA erkennt vermeintlichen String immer als
11.01.2016 14:12:40
Sepp
Hallo X,
ActiveWorkbook.Worksheets(1).Cells(1, 1).Text
Gruß Sepp

Lade mal so eine ".txt-.xls" hoch
11.01.2016 14:15:42
RPP63
Hi!
Worbooks.Open kennt den Parameter Local:=False
Umwandlung in Text ist eigentlich Format(String, "@")
Gruß Ralf

AW: Excel VBA erkennt vermeintlichen String immer als
11.01.2016 14:22:19
otto
Hi,
probier mal
Dim name As String
name = ActiveWorkbook.Worksheets(1).Cells(1, 1)
MsgBox name
Da kommt 010.020 raus.
Vielleicht kannst du damit was anfangen
otto
otto

Anzeige
AW: Excel VBA erkennt vermeintlichen String immer als
11.01.2016 14:40:53
SeamanX
Hallo,
leider funktionieren auch diese Kniffe nicht:
- ActiveWorkbook.Worksheets(1).Cells(1, 1).Text
- Format(String, "@")
- Workbooks.Open Filename:="C:\...\test.xls", Local:=False
- Dim name As String
name = ActiveWorkbook.Worksheets(1).Cells(1, 1)
MsgBox name
Wie gewünscht hier die simple Test-Datei:

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


Lieben Gruß

als Text?
11.01.2016 14:51:26
RPP63
Mein Makrorekorder meldet mir folgendes, wenn ich die Datei als das behandle, was sie ist:
Workbooks.OpenText Filename:="C:\Users\RalfP\Desktop\Übung\txtalsxls.xls", _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 2), _
TrailingMinusNumbers:=True
Dann klappt es auch mit dem Text.
Gruß Ralf

Anzeige
AW: als Text?
11.01.2016 15:39:48
SeamanX
Hallo,
Workbooks.OpenText in Verbindung mit dem Parameter FieldInfo ist der Schlüssel zum Erfolg.
Vielen vielen Dank, die Idee mit dem Makro-Rekorder beim "Öffnen" (eher importieren) der Datei war goldwert!
In meinem Fall (mehrere Spalten) sieht der Parameter dann so aus: FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2), ... Array(n, 2)). Die 2 steht dann für Text.
Lieben Gruß

AW: Excel VBA erkennt vermeintlichen String immer als
11.01.2016 14:52:24
otto
Hi,
vielleicht nützt das was?
Dim name As String
name = ActiveWorkbook.Worksheets(1).Cells(1, 1)
MsgBox VBA.Left(name, 2) & "." & VBA.Right(wert, 3)
otto
Anzeige

350 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige