2016-06-14 15 views
0

ich ein kleines Problem mit meinem neuen VBA-Code haben ..VBA - Losing alle führenden Nullen beim Kopieren

ist hier was los ist: Ich habe eine Excel, wo es zwei Blätter (+1, die eine Datenbank enthält). Blatt 1 enthält Telefonnummern in Spalte G im folgenden Format: 050-7080-6030/301-123-456/06-1234-4567 usw. Ich muss dies in Blatt 2 kopieren, während gleichzeitig "-" (Ich habe dies erreicht, indem ich aus verschiedenen Gründen eine Tabelle erstellt habe - siehe Code unten. Ich habe einfach die Aufnahme für den kopierenden Teil verwendet, um sie als Wert einzufügen - was gut funktioniert - aber in Blatt 2 verliere ich alle führenden Nullen nach dem Ausführen des zweiten Makros. Ich habe versucht, Zellformat als Text für das ganze Blatt (beide) und sogar VBA-Code wie NumberFormat = ... aber nichts scheint zu funktionieren. Irgendeine Idee, wie man das löst? Danke im Voraus! Hier sind die Codes:

Sub copy() 

'copy 

Rows("4:6").Select 
Selection.copy 
Sheets("Sheet2").Select 
Range("A4").Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
:=False, Transpose:=False 

End Sub 

Sub Multi_FindReplace() 

Dim wks As Worksheet 
Dim fndList As Integer 
Dim rplcList As Integer 
Dim tbl As ListObject 
Dim myArray As Variant 

Set wks = Sheets("Sheet2") 

Set tbl = Worksheets("DBs").ListObjects("Phone") 


Set TempArray = tbl.DataBodyRange 
myArray = Application.Transpose(TempArray) 


fndList = 1 
rplcList = 2 

With wks 

For x = LBound(myArray, 1) To UBound(myArray, 2) 

     .Range("G3:I100").Replace What:=myArray(fndList, x), Replacement:=myArray(rplcList, x), _ 
     LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=True, _ 
     SearchFormat:=False, ReplaceFormat:=False 


Next x 

End With 

End Sub 
+0

Sollte funktionieren, wenn Sie die Zellen in Sheet2 als Text vor dem Kopieren formatieren. –

+0

Ich dachte es auch, aber es funktioniert nicht..Ich habe versucht, es auf das ganze Blatt anzuwenden, nur Spalten, nur Zellen..Es ist das gleiche Ergebnis jedes Mal – llorcs

+0

Haben Sie versucht das ultimative Work-around der Präfixierung mit einem Apostroph (einfaches Zitat)? –

Antwort

1

Das Problem in der Art und Weise verursacht wird, dass Excel Ersatz behandelt. Es formatiert Ihre Textzeichenfolge in eine Zahl um, die natürlich die führenden Nullen entfernt.

Mit dem Befehl replace wird die ursprüngliche Formatierung beibehalten.

Beachten Sie, dass dies technisch eine Endlosschleife ist, da keine Bedingung zum Verlassen der Schleife besteht. Der Ausgang hier ist eigentlich der Fehler, der dadurch erzeugt wird, dass das "-" innerhalb des spezifizierten Bereichs nicht gefunden wird.

Ich finde dies eine einfache Methode, wenn Sie einen begrenzten Bereich suchen müssen. Wenn es sich um einen variablen Bereich handelt, ersetzen Sie die Auswahlzeile durch ein vor der Schleife definiertes Array.

+0

Danke! Das funktioniert tatsächlich scheint es! Tho, für mich ist es nur teilweise wie in meinem Fall gibt es chinesische/japanische Doppelbyte-Zeichen. Es scheint jedoch, dass ich die andere Hälfte selbst lösen kann. Wenn nicht, poste ich vielleicht noch einmal. Entschuldigung für die Unannehmlichkeiten und danke für Ihre schnelle Antwort !! Sehr geschätzt! – llorcs

Verwandte Themen