VBA-Format-alle Zellen als text

Unten ist ein Sub, der verwendet wird, formatieren Sie alle Zellen als text in die Tabelle, beginnend mit worksheet3 ab. Wie Sie sehen, es gibt eine Zeile in Fett, ich werde wahrscheinlich ändern müssen. Einer der Zwecke der Linie zu halten, werden die Werte der Spalte 1 ("Client-ID") erhalten, da in jedem Blatt, es besteht aus '00001' Werte umgewandelt, das mit diesem code ändern würde, auf "1". Das ist falsch. Wichtig ist, dass Column1 in jedes Arbeitsblatt enthält immer die gleichen '00001' Werte.

Sub formatAllCellsAsText()

Dim wsTemp As Worksheet
Dim LastRow As Long
Dim LastColumn As Long
Dim StartCell As Range
Dim Cell As Range

For sht = 3 To Worksheets.Count
    Set wsTemp = Sheets(sht)
    Set StartCell = wsTemp.Range("A4")
    LastRow = wsTemp.Range("A4").CurrentRegion.Rows.Count
    LastColumn = wsTemp.Range("A4").CurrentRegion.Columns.Count
    For Each Cell In wsTemp.Range(StartCell, wsTemp.Cells(LastRow, LastColumn)).Cells

    If Not IsEmpty(Cell.Value) And IsNumeric(Cell.Value) 
    And InStr(wsTemp.Cells(1, Cell.Column), "Client ID") <= 0 Then

        Dim Temp As Double
        Temp = Cell.Value
        Cell.ClearContents
        Cell.NumberFormat = "@"
        Cell.Value = CStr(Temp)
      End If
    Next
Next sht

End Sub

Nun mein problem ist, dass in einem Arbeitsblatt gibt es Column6 ("Wert") , möchte ich preseve 000s vor einer Zahl. Wenn ich die Zeile ändern, um Folgendes mein makro noch entfernt vorangegangenen 000s aus der Column6 Werte. Ich denke, der Zustand ist nicht so einfach, wie ich gedacht habe.

If Not IsEmpty(Cell.Value) And IsNumeric(Cell.Value) And 
InStr(wsTemp.Cells(1, Cell.Column), "Client ID") <= 0 And 
InStr(wsTemp.Cells(6, Cell.Column), "Value") <= 0 Then

Irgendwelche Vorschläge?

Sie könnte sich ändern, das format der Zelle/Spalte, um ein benutzerdefiniertes format für führende Nullen anzeigen wenn Sie wissen, dass Ihre Client-ID ist eine festgelegte Anzahl von Zeichen. So können Sie weiterhin behandeln, als eine Zahl. Sie können dieses format über VBA, aber in excel benutzerdefinierte Formate, es wäre so etwas wie 0000000, wenn Ihr client-code wurde 7 Ziffern lang.

InformationsquelleAutor Kris Kozlowski | 2016-04-12

Schreibe einen Kommentar