2015-06-09 57 views
2

任何人都可以指出它將列的格式更改爲Date的部分有什麼問題嗎?它以前工作過,但現在出於某種原因,它不再改變格式。提前致謝。不會更改列的格式

With wsMain 
     .Columns("A:AO").AutoFit 
     .Cells.ClearFormats 
     .Rows(1).Font.Bold = True 
     .Cells.Font.Name = "Georgia" 
     .Cells.Font.Color = RGB(0, 0, 225) 
     .Cells.Resize(.Rows.Count - 1).Offset(1).Interior.Color = RGB(216, 228, 188) 
     .Columns(9).NumberFormat = "MM/DD/YYYY" 
     .Columns(11).NumberFormat = "MM/DD/YYYY" 
     .Columns(17).NumberFormat = "MM/DD/YYYY" 
     .Columns(18).NumberFormat = "MM/DD/YYYY" 
     .Columns(20).NumberFormat = "MM/DD/YYYY" 
     .Columns(22).NumberFormat = "MM/DD/YYYY" 
     .Columns(23).NumberFormat = "MM/DD/YYYY" 
     .Columns(29).NumberFormat = "MM/DD/YYYY" 
+5

代碼對我來說很好看。我會驗證你在這些列中的實際日期,而不是看起來像日期的文本 – tigeravatar

+1

在這裏工作很好。也可以檢查合併的單元格,這些單元格可能會造成嚴重破壞......爲了測試目的,您可以在其中一列上使用.clearformats(它將移除所有格式(s/ing))並查看是否有效。或者只是在列中輸入數字,他們應該更改爲日期(用於測試目的) – 99moorem

+0

它適用於我.xls和.xlsx格式。 – Trimax

回答

0

儘管列格式化,我懷疑數據仍然標記爲「文本」。我敢打賭,如果您通過用「/」替換「/」(是的 - 用相同的斜線字符替換斜線),在該列上執行查找/替換,Excel會將新替換的值識別爲日期並對其進行適當的格式化。這是Excel中的一個怪癖。如果可能的話,您應該在這些列中引入數據之前運行NumberFormat代碼。