Excel 2010 makro Kraft "F2"+"Enter" auf Zellbereich

hoffe mir kann jemand helfen!

Ich habe eine Excel 2010-Arbeitsblatt, das Makros einrichten, um das kopieren von Daten aus anderen Arbeitsblättern in einem bestimmten format auf einem anderen Blatt, für die Verwendung mit anderen Prozessen. Die Daten, die ich brauche Kopien über ok, aber ich habe ein Problem mit der Formatierung von Zellbereichen, die Datums-oder Zeitwerte. Die Daten stammen aus einer Datenbank extrahieren und alles ist in text-format. In meinem Arbeitsblatt, wenn ich das Datum kopiert (über VBA-code-Verfahren), die ich anwenden das format, die wir benötigen, die "yyyy-mm-dd" für Termine und "hh:mm.ss.ss" für die Zeiten.

Gibt es nie eine Feste Anzahl von Zeilen arbeiten wir mit also ich habe den vba-code die Formatierung auf den Zellbereich zum Beispiel:

AssDateLastRow = shAss.Range("C" & Rows.Count).End(xlUp).Row

shAss.Range("C4:C" & AssDateLastRow).NumberFormat = "yyyy-mm-dd"

Und das funktioniert ok, so weit! Aus irgendeinem Grund, obwohl nicht alle Zellen im Bereich die richtige Formatierung übernommen, Sie erscheinen als 15/04/2014 nicht 2014-04-15. Wenn ich dann manuell wählen Sie die Zelle und drücken Sie die F2, dann ENTER - Tasten das format angezeigt wie ich Sie brauche. Dies geschieht nach dem Zufallsprinzip durch den Bereich und es könnte sein, Tausende von Zeilen, so ist es nicht praktikabel, Schleppnetz wenn das Arbeitsblatt manuell betätigen von F2+ENTER für jede.

Ist, habe ich mich über die Hilfe im internet und fand, was ich glauben sollte automatisch die F2+ENTER bisschen mit vba-coding, aber es funktioniert nicht und ich kann nicht sehen, warum (ich bin Anfänger in VBA!)

Den code ein fügen Sie in die unten ist, was ich habe, so weit, seinen extrahiert aus einer größeren Anzahl von code-Zeilen, also die dim Aussagen etc sind weiter oben in den eigentlichen kopieren, aber dies sollte zeigen, wie ich angegangen habe diesen so weit.

Dim shAss As Worksheet
Dim AssDateLastRow As Long
Dim c As Range

'enter method to format 'Date Craftperson Assigned' and 'Time Craftperson Assigned' in   Assignments sheet
'column "C" and "D", to formats required by Archibus: date "yyyy-mm-dd", time  "hh:mm.ss.ss"
AssDateLastRow = shAss.Range("C" & Rows.Count).End(xlUp).Row
shAss.Range("C4:C" & AssDateLastRow).NumberFormat = "yyyy-mm-dd"
'ensure format is applied by forcing F2 edit of cell
For Each c In shAss.Range("C4:C" & AssDateLastRow).Cells
    c.Select
    SendKeys "{F2}", True
    SendKeys "{ENTER}", True
'Selection.NumberFormat = "yyyy-mm-dd"
Next

Wenn ich den code ausführen, werden die Daten kopiert auf meine Arbeitsblätter, aber auch die Termine und Zeiten sind noch in einem gemischten format. Der Versuch zu zwingen, die F2+ENTER per VBA nicht zu haben schien nichts gemacht. Wieder, wenn ein manuell tun es, es funktioniert ok.

Unten ist ein Beispiel der Daten, die kopiert die Ergebnisse in das Arbeitsblatt

Work Request Code       Date Assigned       Time  Assigned
92926                   19/05/2014          14:30.00.00
92927                   19/05/2014          15:00.00.00
92928                   2014-05-19          15:15.00.00
92934                   2014-05-19          14:00.00.00
92527                   12/05/2014          07:30
92528                   12/05/2014          08:00
92804                   2014-05-12          16:15
92805                   2014-05-12          16:20.00.00

Jede Hilfe wäre toll, danke
Dan

  • Ok, was die Daten/zahlen Aussehen, bevor Sie code ausführen? Ich meine, was tut die date assigned 19/05/2014 und 2014-05-19 Aussehen, bevor Sie Sie ausführen BELIEBIGEN code auf es
  • Termine 19/05/2014 und-Zeiten 07:30
  • Ich meine, was ist der zugrunde liegende Wert - und nicht, was angezeigt wird, aber was ist in den recordset? u kann versuchen Range("C5").Value2 aber nicht sicher, ob dies funktionieren wird
  • Nicht sicher, was du meinst mit dem zugrunde liegenden Wert. Die Informationen kopiert werden, z.B. aus Tabelle1 zu Tabelle2 per VBA-code. auf die Blätter ein Datum eingegeben werden, wie dd/mm/yyyy und die Zelle formatieren von Datum-format von der gleichen. das format, das ich bin versucht, nach dem kopieren der Daten in die leeren Zellen auf Blatt 2
  • Ok Super, also wo sind Sie vergeben und wie Sie die Qualifikation Ihrer aktiven Arbeitsblatt?
  • Mit ThisWorkbook Set shWO = .Sheets("Arbeitsaufträge") 'Ändern wie nötig. Set shAss = .Sheets("Zuweisungen") 'Ändern wie nötig. Ende Mit
  • Versuchen Sie manuell das ersetzen von "-" mit "-" und sehen, ob die den job machen, die Daten das richtige format. Es sollte funktionieren. Dann können Sie einfach tun, wie ein makro. Es ist schnell und es funktioniert. Ich benutze es die ganze Zeit.

InformationsquelleAutor dan1974 | 2014-06-05
Schreibe einen Kommentar