使用len()函数获取access VBA中日期的长度
我正在编写一个函数,它接受一个日期并将其转换为一个字符串,以便我可以使用该字符串保存导出文件。因此,2019年10月12日变为12102019 我遇到了一个问题,我相信我可能没有正确使用len()函数 我想确保一位数的月份和天数,即2019年1月1日显示为01012019 我创建了一个循环,用一整年的时间来测试我的功能使用len()函数获取access VBA中日期的长度,vba,ms-access,Vba,Ms Access,我正在编写一个函数,它接受一个日期并将其转换为一个字符串,以便我可以使用该字符串保存导出文件。因此,2019年10月12日变为12102019 我遇到了一个问题,我相信我可能没有正确使用len()函数 我想确保一位数的月份和天数,即2019年1月1日显示为01012019 我创建了一个循环,用一整年的时间来测试我的功能 dim x as date if len(x) = 8 then debug.print x elseif len(x) = 9 then debug.pr
dim x as date
if len(x) = 8 then
debug.print x
elseif len(x) = 9 then
debug.print x
end if
想象这是一个循环
当len(x)=8时,没有问题。我知道日期是2019年1月1日
当len(x)=9时,即2019年1月10日,它将不处理elseif
我是否正确使用len()函数?还有什么我应该用的吗
谢谢
VBA中的土拨鼠将给出日期的长度。在VBA中,许多数据类型实际上都存储为双重类型。这就是为什么您看不到日期的字符串长度,而是值中位数的长度加倍的原因
您可以在excel中对此进行测试,日期如下:
2019年1月1日
2019年10月1日
当格式化为数字(5位数长度)时:
43466
43739
要解决此问题,您可以按照@braX&Ken的建议,使用格式$(x,“yyyyymmdd”)
,您可以用引号括起来,从长度中减去2,或者将日期转换为VBA中的字符串。省去麻烦,只需将日期格式化为字符串-格式$(x,“mmddyyyy”)
-那么长度总是相同的,并且已经是您需要的格式。更好的是,省去您将来的一些麻烦,将导出文件的格式更改为yyyymmdd
,这样您就可以使用dir
或Explorer对其进行正确排序。如果您不确定原因,请在文件夹中创建一些示例文本文件,如01012019.txt
,02012018.txt
,以及不同月份和年份的不同日期,然后尝试按时间顺序列出它们。谢谢,我将使用格式化方法。我没想过,但很感谢你的帮助