我有这样一段代码,它显示了一个文件的年龄(按天):
Date_Created = Worksheets("FileCleaner").Range("D" & startrow).Value
File_Age_Day = DateDiff("d", Date_Created, Date)
Worksheets("FileCleaner").Range("E" & startrow).Value = File_Age_Day
字符串
有没有什么方法可以把它转换成这样的格式,比如说“0年3个月3天”?
6条答案
按热度按时间vc6uscn91#
正如其他用户已经指出的那样,您将遇到困难,因为不同的月份有不同的天数和周数(给定的年份也可能有不同的天数)。
我认为你最好的办法是“假设”一个月有给定的天数(例如:30),你不是在闰年。那么你的算法应该是这样的:
字符串
1cklez4t2#
这是我为完成这项任务而设计的潜水艇。我从你的代码中后退了一步。如果我没看错你的问题,你有一个包含日期
Range("D" & startrow)
的单元格,然后你计算自该日期以来的原始天数,然后将该数字转换为年,月,天。我的代码改为从单元格中获取日期字符串(例如:3/1/2019),然后独立计算过去的年、月和日。它考虑了每个月和闰年的不同日期,通过我的测试,唯一没有处理的逻辑是,如果单元格中的日期实际上是在未来-我希望这是好的。字符串
This is the output要使其适用于您的单个工作表,您需要做的就是更改mySheet、dateCell和outputCell变量。我的日期单元格设置为mm/dd/yyyy格式。我没有用其他日期格式测试过它。
fsi0uk1n3#
这是我的解决方案。我在我的公司里使用这个,虽然它是用印度尼西亚语写的,因为我来自那里。这是一个函数,它需要两个参数:tanggal_akhir(翻译为“开始日期”)和tanggal_mulai(翻译为“结束日期”)。公式是BEDATANGGAL,意思是“日期差异”。希望对你有帮助。
字符串
insrf1ej4#
对泰勒上述回答的修改
字符串
but5z9lq5#
已经很久了,但可能对某人有用。
字符串
3pmvbmvn6#
尝试以下操作。
字符串