Anzeige

 Aus der Zeile nur Zahlen entnehmen


#1
Hallo,
bin neu hier und habe eine kleine Frage. Hoffe, dass ihr mir helfen könnt...
Ich arbeite im Excel mit VBA-Macro. Mein Anliegen ist folglich:

Ich kann: Werte aus der Excel-Datai lesen und in eine externe Datei schreiben ( mit der Print# Anweisung).

Ich möchte: Eine Zeile, die sowohl Text, als auch Zahl beeinhaltet, so in die externe Datei schreiben lassen, dass diese Zeile in der externen Datei nur Zahlen besitzt.

-->Also: Print#1, NehmeNurZahlen(Print).

Hat irgendeiner ein Tipp, wie ich geschickt dieses Problem lösen kann...?
Danke im Voraus
 

Yaslaw

n/a
Moderator
#2
Sollen nur die Zeilen geschrieben werden, in der nur Zaheln sind?
Oder sollen alle Texte aifach ausgefiltert werden und nur die Zahlen kommen ich die Date?
Soll nur eine Spalte exportiert werden oder mehrere?
Sollen die Spalten im Export mit einem Zeichen getrennt werden?

Alles Fragen die mit einem kleinen Beispiel beantwortet werden können.

Und zeig mal dein bisherigen Code.
 
#3
Sollen nur die Zeilen geschrieben werden, in der nur Zaheln sind?
Oder sollen alle Texte aifach ausgefiltert werden und nur die Zahlen kommen ich die Date?
Soll nur eine Spalte exportiert werden oder mehrere?
Sollen die Spalten im Export mit einem Zeichen getrennt werden?

Alles Fragen die mit einem kleinen Beispiel beantwortet werden können.

Und zeig mal dein bisherigen Code.
Aus einer ganzen Zeile sollen nur die Zahlen aussortiert werden.
Ich glaube eine Lösung zu wissen.
mit der Print#, Mid() Anweisung... so kann man aus dem String die gewünschte Stelle herauspicken. :)
 

Yaslaw

n/a
Moderator
#4
Eine Zeile hat aber mehrere Zellen.
Sollen alle Zellen zusammengezogen werden? Der mid() hilft dir da nur schlecht weiter.

Grundsätzlich am einfachsten um Ziffern aus Text zu extrahieren
Visual Basic:
Dim rx As Object
Set rx = CreateObject("VBScript.RegExp")
rx.pattern = "[^\d]+"    'Eine Zeichenfolge ohne Ziffern
rx.global = true

'Alle Zeichenfolgen ohne Ziffern durch nix ersetzen
txt = rx.replace(txt, "")
Das ganze macht aber keinen Sinn.
 
#5
Eine Zeile hat aber mehrere Zellen.
Sollen alle Zellen zusammengezogen werden? Der mid() hilft dir da nur schlecht weiter.

Grundsätzlich am einfachsten um Ziffern aus Text zu extrahieren
Visual Basic:
Dim rx As Object
Set rx = CreateObject("VBScript.RegExp")
rx.pattern = "[^\d]+"    'Eine Zeichenfolge ohne Ziffern
rx.global = true

'Alle Zeichenfolgen ohne Ziffern durch nix ersetzen
txt = rx.replace(txt, "")
Das ganze macht aber keinen Sinn.
Vielen Dank, das hilft mir wesentlich weiter. Super!!!

Die Zellen in der jeweiligen Zeile werden in unterschiedlichen Arrays hinterlegt. So kann ich die einzelne Zelle ausgeben lassen.
Und mein Problem war, dass in der Zelle, welche ich ausschreiben möchte, sowohl Zeichenkette als auch Ziffer befinden.

Beispielsweise steht in der Zelle: Sie beschleunigen von '50' auf '70'
Ich möchte die Zelle in der externen Datei selber beschreiben, wie: "xxxxxxxxx: '50' xxxxxxxx 70 xxxxxx"

Dank deiner Hilfe kann die Zeichenfolge weggelassen werden, aber beide Ziffern werden zusammengeschrieben (hierbei: 5070)
Kann ich so programmieren, dass er zwischen den beiden Zahlen wenigtens ein "Trennzeichen" hinzufügt.
Heißt: "xxxxxxxxx: 50 --> 70 xxxxxx"
 

Yaslaw

n/a
Moderator
#6
#8
Ich kriege es nicht hin :(

Kann ich mit IF-Bedingung gezielte Inhalte lesen lassen?
Also wenn in der Zelle wertxy steht, kann ich

if zeile= "xy" then

schreiben?

oder muss der Zelleninhalt unbedingt übereinstimmen?
 

Yaslaw

n/a
Moderator
#9
Sorry, ich seh den Zusammenhang zum restlichen Thread nicht.

Unabhängig davon. Ja du kannst ein If auf ein Feld machen.
Visual Basic:
 if activeWorksheet.Range("A3").Value = "xy" Then
    ....
End If
 
Anzeige

Neue Beiträge

Anzeige