2016-04-12 3 views
-1

Dies ist der Wert meines Datums Mar 30 2016 4:46:34:256PM Ich möchte die Zeit entfernen, um es so zu machen Mar 30 2016.VBA - Wie Zeichenfolge in einem Bereich entfernt Zelle

Ich habe verschiedene Möglichkeiten versucht, diese, wenn der Wert zu formatieren mit dem Format wie mm-dd-yyyy, mm-dd-yyyy, yyyy-mm-dd etc. es funktioniert, aber wenn versucht, diese Mar 30 2016 4:46:34:256PM als Wert, es funktioniert nicht. Kann mir bitte jemand sagen warum?

habe ich versucht, einen einfachen Code alle Formate zu testen, aber es funktioniert nicht mit diesem Wert Mar 30 2016 4:46:34:256PM so habe ich beschlossen, die 4:46:34:256PM zu entfernen, und das ist, wie ich Lager bekam ....

Sub formateDate() 
Dim lastrow As Long 

lastrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row 

For i = 2 To lastrow 

Cells(i, 2).NumberFormat = ("dd-mm-yyyy") 
Next i 
End Sub 
+0

aufgerufen wird Ich bin mir nicht sicher, ob ich das verstehe. Ist 'Mar 30 2016 4: 46: 34: 256PM ein aktuelles Datum oder eine Zeichenfolge? Wenn Excel einen Text nicht als Datum erkennt, kann er seine Formatierung nicht ändern. Stellen Sie sicher, dass Sie tatsächliche Daten in die Zellen eingeben und formatieren Sie sie, oder Sie müssen wild mit Text- und Datumsfunktionen gehen, um nur das Datum zu extrahieren. – vacip

+1

Um zu überprüfen (wie @vacip suggeriert), überprüfen Sie die 'Cells (i, 2) .Value2'. Wenn es sich um eine Nummer handelt, werden die Daten als Datum gespeichert und Sie können sie mit '.NumberFormat' formatieren. Wenn das nicht der Fall ist und Sie eine Zeichenfolge für '.Value2' zurückbekommen, müssen Sie das Datum zuerst aus der Zeichenfolge extrahieren (Albtraum). – Ralph

+0

@vacip ist ein aktuelles Datum, aber ich werde es als Bereich definieren, damit ich das * NumberFormat * – 7A65726F

Antwort

2

aus Ihrem Beispiel Sie scheinen zwei aufeinander folgende Leerzeichen nach der Jahreszahl

sollte es immer gehen Sie könnte zu haben, so wie

Cells(i, 2) = Left(Cells(i, 2), InStr(Cells(i, 2), " ") - 1) 

folgt und dann Sie können auch Datumsformate zuweisen, da IsDate WorksheetFunction True zurückgibt, wenn auf die resultierenden Werte

+0

Vielen Dank für Ihre Antwort Ich werde es versuchen, sobald ich nach Hause komme – 7A65726F

+0

hat VBA dieses Format 'hh: mm: ss: SSSa'? – 7A65726F

+0

Was brauchen Sie? Sie können einen String mit einem beliebigen Format erstellen, indem Sie Strings sezieren und verketten. Wenn Sie Excel jedoch als Zeitformat erkennen möchten, müssen Sie im Zahlenformatmenü darauf achten. Wenn meine Lösung Ihre Frage beantwortete, markieren Sie diese bitte als akzeptiert. Vielen Dank – user3598756

Verwandte Themen