2015-10-20 89 views
2

所以我试试这个:VBA格式日期不工作,由于Windows区域设置(我认为)

gestern = Format(WorksheetFunction.WorkDay(Date, -1), "DD/MM/YYYY") 

...和替代DD/MM/YYYY我得到DD.MM.YYYY

我认为它与我的Windows上的区域设置有关 - 它们现在设置为德国。它表示日期的默认格式是DD.MM.YYYY。所以我认为这是我的问题的原因。但是我不能将它改回英文,因为那时我的其他一些宏已经不能正常工作了。此外,我没有看到一个选项,也添加了其他日期格式。

有关如何在不更改Windows区域设置的情况下获取格式为DD/MM/YYYY的昨天日期的任何想法?谢谢!

+0

确切位置在哪里你想显示为“DD/MM/YYYY”的日期?您的代码是否会返回在电子表格的单元格中显示的日期? – andshrew

+0

我想要一个变量,该变量应该与If语句中格式为“DD/MM/YYYY”的日期单元格列进行比较。比我想取出日期不同的行。目前,If始终返回false,因为我无法将该变量转换为“DD/MM/YYYY”。 – Nenko

+0

您可以使用gestern = Replace(格式(WorksheetFunction.WorkDay(Date,-1),“DD/MM/YYYY”),format(now,“/”),“/”)',但必须有一个更简单的方法做到这一点。 –

回答

0

您必须转义/字符,以便它不被格式视为日期分隔符。为了逃避它,使用\字符:

gestern = Format(WorksheetFunction.WorkDay(Date, -1),"DD\/MM\/YYYY") 
+0

工程像魅力!非常感谢! – Nenko