Excel VBA检测列格式是否为日期

Excel VBA检测列格式是否为日期,excel,vba,Excel,Vba,如何检查列(不是单元格或区域!!!)是否为日期格式 以下代码显示列格式,但如何列出所有可能的日期格式([$-C09]dddddd,d mmmm-yyyy;@,d/mm/yyyy;@…),宏在更改格式时检测这些格式 Sub Macro1() MsgBox Selection.NumberFormat End Sub 列(不是单元格或区域!!!)列是一个区域,区域是单元格的集合。数字格式应用于单元格。如果所有选定的呼叫都具有相同的号码格式,Selection.NumberFormat将显示它,否则

如何检查列(不是单元格或区域!!!)是否为日期格式

以下代码显示列格式,但如何列出所有可能的日期格式([$-C09]dddddd,d mmmm-yyyy;@,d/mm/yyyy;@…),宏在更改格式时检测这些格式

Sub Macro1()
MsgBox Selection.NumberFormat
End Sub

列(不是单元格或区域!!!)
列是一个区域,区域是单元格的集合。数字格式应用于单元格。如果所有选定的呼叫都具有相同的号码格式,
Selection.NumberFormat
将显示它,否则它将返回
Null
。与您的查询稍微混淆。您的意思是要返回列中最大使用的日期格式吗?例如,如果有5个单元格填充了日期,其中3个是
dd/mm/yyyyy
,其中2个是
m/d/yyyy
,那么您想返回
dd/mm/yyyyy
?还是要同时返回两种格式?或者,如果5个单元格有不同的格式(文本、数字、日期),则全部重新运行?如果列中有混合格式,则您看到的数字格式将用于该列中的第一个单元格,而不是该列中的其余数据。
numberformat
具有无限的可能性。您无法枚举它们。
如果我知道该列是否为Date,它就可以工作。
-您无法知道。您可以对列的每个单元格分别调用
IsDate
,但您可能会对结果感到失望或困惑。假设它们是日期,在遇到错误时失败。