Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 日期格式代码_Vba_Excel - Fatal编程技术网

Vba 日期格式代码

Vba 日期格式代码,vba,excel,Vba,Excel,我想知道是否有可能编写一个VBA代码,其中a列应始终具有日期格式,如下所示:2017年10月12日(不是2017年10月12日或2017年10月12日)。如果在列A中写入了其他内容,如“12”或“car”,则应删除该条目。它必须只接受上面提到的日期格式 为此,我使用了数据验证,长度为10,日期格式仅考虑“.”,但我希望将其作为VBA代码来执行 谢谢 有效日期是一个long,表示自1900年1月1日起的天数。所以有效日期是45603。您可以使用格式代码d、m和y以任何格式显示此日期。因此,若要将日

我想知道是否有可能编写一个VBA代码,其中a列应始终具有日期格式,如下所示:2017年10月12日(不是2017年10月12日或2017年10月12日)。如果在列A中写入了其他内容,如“12”或“car”,则应删除该条目。它必须只接受上面提到的日期格式

为此,我使用了数据验证,长度为10,日期格式仅考虑“.”,但我希望将其作为VBA代码来执行


谢谢

有效日期是一个long,表示自1900年1月1日起的天数。所以有效日期是45603。您可以使用格式代码d、m和y以任何格式显示此日期。因此,若要将日期显示为dd.mm.yyyy,请在A列的单元格中设置该数字格式。但您的问题是Excel只接受以长格式或内置日期格式输入的日期(使用/、-或空格作为分隔符)。您可以允许用户以dd.mm.yyyy的格式输入文本字符串,然后将该字符串转换为日期,如果转换没有产生有效的日期,则可以拒绝该字符串。但是,培训用户正确输入日期不是更容易吗?

请参阅您需要一个工作表更改事件来检查用户输入与代码一起读取输入并根据规则进行检查。如果符合规则,则不执行任何操作,否则。在目标单元格上清除内容。通常,您会使用电子表格中提供的格式选项,因为日期可能是一个噩梦。通常,您会选择一些明确的内容,例如国际标准yyyy mm ddSet您的规则,以便尽早排除。例如,如果len 10,如果count of“.”not=2,如果存在任何非数字字符(忽略“.”)@QHarr:将立即尝试。私有子工作表_更改(ByVal目标作为范围)选择大小写目标。列大小写=1表示列a等。。