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?
InformationsquelleAutor Kris Kozlowski | 2016-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Pls versuchen Sie dies:
Du einfach überprüfen, für die Anzahl formatieren und dann gilt es auf die Zeichenfolge. Auf diese Weise "0001" bleibt "0001". Ein anderer Weg wäre die Verwendung von
.Text
Können Sie auch dies nur, wenn
If IsNumeric(Cell.Value) And Left(Cell.Text, 1) = "0" Then
wahr ist, so dass die Regel gilt nur für Zellen mit numerischen Werte mit führenden Nullen 😉InformationsquelleAutor Dirk Reichel
Ändern Sie die Zeile
zu
InformationsquelleAutor Siddharth Rout