【问题标题】:Doesn't change the format of columns to date迄今为止不更改列的格式
【发布时间】:2015-06-09 15:33:07
【问题描述】:

谁能指出将列格式更改为日期的部分有什么问题?它以前有效,但现在由于某种原因它不再改变格式。提前致谢。

   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"

【问题讨论】:

  • 代码对我来说看起来不错。我会验证您在这些列中有实际日期,而不是看起来像日期的文本
  • 在这里可以正常工作。还可以检查合并的单元格是否会造成破坏……也可以出于测试目的,在其中一列上使用 .clearformats (这将删除所有格式(s/ing)),看看是否有效。或者只是尝试在列中输入数字,它们应该更改为日期(用于测试目的)
  • 它适用于我的 .xls 和 .xlsx 格式。
  • 感谢大家的及时回复

标签: vba excel formatting


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-14
    • 2015-01-09
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多