Vba 不';t将列的格式更改为最新

Vba 不';t将列的格式更改为最新,vba,excel,formatting,Vba,Excel,Formatting,有人能指出,到目前为止更改列格式的部分出了什么问题吗?它以前工作过,但现在由于某种原因它不再改变格式了。提前谢谢 With wsMain .Columns("A:AO").AutoFit .Cells.ClearFormats .Rows(1).Font.Bold = True .Cells.Font.Name = "Georgia" .Cells.Font.Color = RGB(0, 0, 225) .

有人能指出,到目前为止更改列格式的部分出了什么问题吗?它以前工作过,但现在由于某种原因它不再改变格式了。提前谢谢

   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"

我怀疑数据仍然标记为“文本”,尽管有列格式。我打赌,如果您通过将“/”替换为“/”(是-将斜杠替换为相同的斜杠字符)来查找/替换该列,Excel会将新替换的值识别为日期,并适当设置格式。这是Excel中的一个怪癖。如果可能,在这些列中引入数据之前,应该先运行NumberFormat代码

代码在我看来很好。我会验证这些列中是否有实际日期,而不是看起来像dateWorks的文本。还可以检查合并的单元格,因为它们会造成严重破坏。。。出于测试的目的,您还可以在其中一列上使用.clearformats(它将删除所有格式(s/ing)),并查看它是否有效。或者只是试着在列中键入数字,它们应该改为日期(用于测试目的)。它在.xls和.xlsx格式中对我都有效。感谢各位的及时回复