Microsoft Excel

Herbers Excel/VBA-Archiv

"Tabulator"



Excel-Version: 9.0 (Office 2000)

Betrifft: "Tabulator"
von: Daniele
Geschrieben am: 04.06.2002 - 09:59:37

Hi

wie kann man im Excel-Code einen "Tabulator" setzen
Also anstatt:
...Cells(i, 2) & " " & Cells(i, 3)
was einen bestimmten Abstand zwischen den Werten erzeugt, möchte ich einen FESTEN Abstand erzeugen.

Danke für eure Hilfe
daniele

  

Re: "Tabulator"
von: Harald Kapp
Geschrieben am: 04.06.2002 - 10:33:43

Hallo Daniele,
so wie ich es sehe, geht es nicht auf einfache Weise.
Man kann zwr mit ...Cells(i,2) & chr(9) & Cells(i,3) einen Tabulator setzen (chr(9)), aber Excel kann das nicht darstellen.

Als Alternative könntest Du versuchen, mittels der Format-Funktion und Zählen der Anzahl von Zeichen in den einzelnen Teilstrings eine Ausrichtung zu erzwingen. Dann musst Du aber auch einen nicht-proportionalen Zeichensatz verwenden, z.B. Courier.

Mit freundlichen Grüßen

Harald Kapp


  

Re: "Tabulator"
von: Daniele
Geschrieben am: 04.06.2002 - 11:04:48

Hallo Harald

Dachte es wäre nicht so leicht
Danke trotzdem

Gruss, Daniele


  

Re: es geht über Umweg!
von: Rainer
Geschrieben am: 04.06.2002 - 11:14:42

Liebe Daniela, lieber Harald!

Es geht schon, aber über einen Umweg ;-)

Versuche folgenden Code:


Sub Tabulator()
Dim str As String

    With Sheets(1)
        'verwendet die Excel Funktion =WECHSELN(Ausgangstext, Suchtext, Ersetztext)
        str = .Cells(1, 1).Value & vbTab & .Cells(2, 1).Value & vbTab & .Cells(3, 1)
        .Cells(2, 2).Value = WorksheetFunction.Substitute(str, vbTab, "    ")
    End With

End Sub


Du könntest es auch ohne Variable str verwenden, die hat aber den Vorteil, dass dadurch der Code übersichtlicher wird.

Lieben Gruß
Rainer

  

Re: eleganter
von: Rainer
Geschrieben am: 05.06.2002 - 10:20:37

Eine etwas elegantere Lösung:


Sub Tabulator_eleganter()
Dim str As String
    With Sheets(1)
        'verwendet die Excel Funktion =WECHSELN(Ausgangstext, Suchtext, Ersetztext)
        str = .Cells(1, 1).Value & vbTab & .Cells(2, 1).Value & vbTab & .Cells(3, 1)
        'Einfache Methode:
        .Cells(1, 2).Value = WorksheetFunction.Substitute(str, vbTab, "    ")
        'Fügt 5 Leerzeichen ein:
        .Cells(2, 2).Value = WorksheetFunction.Substitute(str, vbTab, Space(5))
        'Fügt 5 Zeichen ein:
        .Cells(3, 2).Value = WorksheetFunction.Substitute(str, vbTab, String(5, "-"))
    End With

End Sub

Rainer