2016-06-01 3 views
0

hoffe ich, ist durch die Kopfzeilen eines Excel-Arbeitsblattes suchen und suchen Sie die Header, die das Wort "DATE" oder "DT" enthalten und formatieren alle der Daten in dieser Spalte zu "MM/TT/JJJJ hh: mm" Jede Hilfe wäre willkommen. Vielen Dank.Mit Blick auf Header-Spalten und Zellen in diesen Spalten in VBA

Code Bestehende (aus Kommentar angehoben)

Sub Macro() 
    Dim iLastRow As Integer 
    Dim i As Integer 
    iLastRow = ActiveSheet.Range("a10000").End(xlUp).Row 
    For i = 3 To iLastRow 
     ActiveSheet.Range("A" & i).Select 
     Selection.NumberFormat = "m/d/yyyy h:mm" 
    Next i 
End Sub 
+0

die Logik Um zu klären würde so etwas gehen: - geh runter b2 -> b bis leerzelle - fo r Zellen, die "DATE" oder "DT" enthalten - gehe in diese Zeile -> gehe bis leere Zelle - ändere das Format aller Zellen in mm: dd: yyyy h: mm – Rob

+0

Ab sofort habe ich nur diese das funktioniert für Spalte A: Sub Makro() Dim iLastRow As Integer Dim i As Integer iLastRow = ActiveSheet.Range ("a10000") End (xlUp) .Row für i = 3 bis iLastRow . ActiveSheet.Range ("A" & i) .Wählen Sie Selection.NumberFormat = "m/d/jjjj h: mm" Als nächstes i End Sub Ich habe Probleme, das eine Variable – Rob

+0

warum nicht direkt 'ActiveSheet.Range (" A: A "). NumberFormat =" m/d/jjjj h: mm "'? –

Antwort

0

Dies sollte das tun, was Sie wollen:

Sub Macro() 
    Dim x As Variant, y As Variant 
    For Each y In ThisWorkbook.Worksheets 
    With y 
     For Each x In .Range(.Cells(1, 1), .Cells(1, .Columns.Count).End(xlToLeft)).Cells 
     If InStr(1, Replace(x.Value, "DATE", "DT", , , vbTextCompare), "DT", vbTextCompare) Then 
      Intersect(.UsedRange, .UsedRange.Offset(2), x.EntireColumn).NumberFormat = "m/d/yyyy h:mm" 
     End If 
     Next 
    End With 
    Next 
End Sub 

einfach die For Each Linie ändern, um Ihre Bedürfnisse anzupassen;)

+0

Vielen Dank dafür! Nicht sicher, was du meinst, wenn du das For Each änderst. Tut mir leid, ich bin sehr neu in VBA. – Rob

+0

Es sucht nach der ersten Zeile, um Ihre Header zu finden ... aber wenn sie in der zweiten Zeile sind, müssen Sie den ersten Parameter in 'Cells' von 1 bis 2 ändern. –

+0

Vielen Dank! Das ist sehr hilfreich. Wenn ich versuchen würde, dies durch alle Arbeitsblätter zu bekommen, würde ich auch ein For Each verwenden? – Rob

Verwandte Themen