2015-10-20 91 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