TextToColumns
Betrifft: TextToColumns
von: Andreas
Geschrieben am: 17.11.2014 19:51:02
Hallo,
ich möchte eine Variable, die durch den Benutzer definiert wird, als Argument der Methode "TextToColumns" benutzen. Genauer, die Argumente "DecimalSeparator" und "Comma" und "Semicolon". Der user soll zum Beispiel auf einer Oberfläche diese Argumente definieren, und dann soll mit diesen Argumenten eine csv Datei geöffnet werden.
Sheets("calc").Range("B2:B35").TextToColumns(,xlDelimited, , , , ,True)
gibt mir immer den Fehler " Compile ERROR. Expected:=". Ich vetsehe nicht, wieso die Argumente oder die ganze Zeile vom Compiler als Variable angesehen wird.
Was mache ich hier falsch?
vielen Dank für einen Tipp!
Andreas
Betrifft: AW: TextToColumns
von: yummi
Geschrieben am: 18.11.2014 09:19:24
Hallo Andreas,
gib mal vor deinen Argumenten an wofür die sind:
Sheets("calc").Range("B2:B35").TextToColumns(DataType:=xlDelimited,Space:=True)
ob Du mit True auf Space zugreifen wolltest weiß ich nicht, musst Du evtl anpassen
Gruß
yummi
 |
Betrifft: AW: TextToColumns
von: Andreas
Geschrieben am: 18.11.2014 10:17:36
Hallo Yummi,
vielen Dank für Deine Antwort.
Die Definition lautet:
expression.TextToColumns(Destination, DataType, TextQualifier, ConsecutiveDelimiter, Tab, Semicolon, Comma, Space, Other, OtherChar, FieldInfo, DecimalSeparator, ThousandsSeparator, TrailingMinusNumbers)
"True" steht an Position 7, also soll die Position 7 der Argumente, also Comma:=TRUE sein.
Kann man überhaupt die von mir benutzte Notation in diesem Fall nehmen?
Die Methode funktioniert, wenn ich named Arguments beutze, aber dann kann ich keine Variablen einsetzen, oder doch?
Wenn ich nur ein Boolean als Argument habe, kann ich mit Variablen arbeiten. Das ist mein Ziel.
Ich habe das getestet, und es funktioniert nicht:
Dim myVar as Boolean
myVar = True
Sheets("calc").Range("B2:B35").TextToColumns DataType:=xlDelimited, Comma:=myVar
Fehler:
Runtime error '9'
Subscript out of range.
Die Notation mit Argumenten in Klammern funktioniert bei mir überhaupt nicht.
Andreas
 |
Betrifft: AW: TextToColumns
von: Daniel
Geschrieben am: 18.11.2014 09:32:54
Hi
du verwendest die Anweisung TextToColumns als einfachen Befehl, dh die Probgrammzeile enthält nur den Befehl und seine Parameter und nichts weiter.
In diesem Fall werden die Parameter des Befehls nicht in Klammern gesetzt!
Sheets("calc").Range("B2:B35").TextToColumns ,xlDelimited, , , , ,True
Gruß Daniel
Betrifft: AW: TextToColumns
von: Andreas
Geschrieben am: 18.11.2014 10:27:52
Hi Daniel,
OK, das funktioniert!
Vielen Dank!
Andreas
Betrifft: AW: TextToColumns
von: fcs
Geschrieben am: 18.11.2014 10:58:39
Hallo Andreas,
so könnte es aussehen, wenn du das Trennzeichen variabel setzen möchtest.
Gruß
Franz
Sub aaTest()
Dim strTrennzeichen As String
Dim rng As Range
Dim bolTab As Boolean, bolSemi As Boolean, bolComma As Boolean, _
bolSpace As Boolean, bolOther As Boolean, strOther As String
Set rng = Sheets("calc").Range("B2:B35")
strTrennzeichen = InputBox("Trennzeichen für Text in Spalten ( , ; . oder tab )", _
"Text in Spalten Zellbereich " & rng.Address(False, False), ";")
Select Case LCase(strTrennzeichen)
Case "" 'Abbrechen wurde gewählt
Case ".", ",", ";", "tab" 'zulässige Trennzeichen
Select Case LCase(strTrennzeichen)
Case "." 'Punkt
bolOther = True: strOther = strTrennzeichen
Case "," 'Komma
bolComma = True
Case ";" 'Semikolon
bolSemi = True
Case "tab" 'Tabulator
bolTab = True
End Select
With rng
.TextToColumns Destination:=.Range("A1"), DataType:=xlDelimited, _
Tab:=bolTab, Semicolon:=bolSemi, Comma:=bolComma, Space:=bolSpace, _
Other:=bolOther, otherChar:=strOther
End With
Case Else
MsgBox "unzulässiges Trennzeichen"
End Select
End Sub
 |
Betrifft: AW: TextToColumns
von: Andreas
Geschrieben am: 18.11.2014 11:43:26
Hallo Franz,
genau diesen Code suchte ich!
Vielen Dank,
Andreas