2009-06-17 4 views
0

Existe-t-il un moyen de programmer une macro pour convertir toutes les dates dans une feuille de calcul à partir de "2009 AVR 01 00: 00: 00.000 "à un format de date" jj-mmm-aaaa "? J'ai un ensemble de données qui est régulièrement tiré et toutes les dates dans plus de 40 colonnes sont fondamentalement inutiles en 2009 APR 01 00: 00: 00.000, des idées sur la façon de créer ce type de macro et être en mesure de partager avec d'autres Les données?Les dates Excel formatées en "AAAA MMM JJ 00: 00: 00.000" doivent être au format DD-MMM-YYYY

Merci!

+0

quel type de colonne, il est? chaîne? – shahkalpesh

+0

D'où proviennent les données? Impossible de modifier la source pour tirer les données dans le format, vous avez besoin? – shahkalpesh

+0

Je ne peux pas modifier la source, malheureusement. Les colonnes ont des en-têtes et ensuite les dates asso- ciées à chaque rangée. Une "date" par cellule –

Répondre

0

En supposant qu'Excel les reconnaisse comme des dates, vous pouvez simplement modifier le formatage des cellules au format de date approprié. colonne de surbrillance, un clic droit -> cellules de format ...

+0

J'ai essayé cela ... il ne reconnaît pas les dates comme des dates. –

0

Je n'ai pas la réponse complète pour vous, mais voici ce que je ferais à peu près:

  1. Obtenez la gamme de l'ensemble de feuille de calcul afin vous savez ce que vous devez parcourir.
  2. Effectuez une itération à travers chaque cellule.
  3. Sur chaque cellule, vérifiez s'il s'agit déjà d'un format de date.
  4. Si le format de cellule est déjà le format de date, utilisez le code suivant: Selection.NumberFormat = "dd-mmm-yyyy".
  5. Sinon, passez à la cellule suivante.

Bonne chance!

2

Il semble que vos dates soient toujours la même longueur de chaîne. Voici une solution possible:

orgDate = "2009 APR 01 00:00:00.000" 

newDate = mid(orgDate,10,2) & "-" & mid(orgDate,6,3) & "-" & left(orgDate,4) 

dans chaque cellule Itérer avec une boucle et effectuer l'opération de chaîne ci-dessus, puis mettre newDate en arrière dans la cellule.

+0

Je suis un débutant total ... Je vais devoir chercher ce que vous voulez dire par là ... merci! –

2
 

Function GetDateInMyFormat(exampleDate As String) As Date 
On Error GoTo e 
Dim year As String 
Dim month As String 
Dim day As String 

Dim wantedDate As String 

year = Mid(exampleDate, 1, 4) 
month = Mid(exampleDate, 6, 3) 
day = Mid(exampleDate, 10, 2) 

wantedDate = year & "/" & month & "/" & day 
GetDateInMyFormat = CDate(wantedDate) 
Exit Function 

e: 

End Function 
 

Vous pouvez créer un XLA (XL addin) et ajouter cette fonction dans le cadre de XL VBA.
Chargez l'addin à l'aide de la boîte de dialogue d'ajout d'Excel. De cette façon, la fonction sera disponible pour les classeurs.

Et, vous pouvez utiliser cette fonction sur vos cellules, comme toute autre fonction. Faites-moi savoir, si vous rencontrez des problèmes.

utilisation: GetDateInMyFormat ("avr 2009 01 00: 00: 00.000")
retours 4/1/2009

Questions connexes