Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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ß

Anzeige

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

Anzeige
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

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ß

Anzeige
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ß

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige