2015-06-11 33 views
6

我用我創建的電子表格碰到了一個障礙。它可以在我的電腦上正常工作,但我知道辦公室中的其他一些電腦具有美國本地化。有沒有辦法強制VBA檢查使用英國本地化的東西?強制使用英國本地化的VBA

我遇到的問題是,作爲宏的一部分,我使用Text to Columns來確保輸入的日期顯示爲日期,而不是數字或文本。在我的PC上,它似乎工作正常,但我知道我把它設置爲英國本地化。

其他人有問題,並不知道它是否是英國本地化。如果我可以在VBA中加入一行額外的代碼來強制在宏中完成所有的事情,那麼我們應該非常理想,英國本地化。

問題本身就是該程序將日期從英國格式切換爲美國格式。當文本到列的階段發生在宏中時,它似乎正在發生。

有沒有辦法讓VBA自動檢查,如果它是英國本地化,如果不是,那麼將其更改爲英國本地化,然後在最後更改它?我不想強制每臺電腦都有英國本地化,因爲它可能會導致其他問題或惹惱用戶 - 這絕對是不可取的!

乾杯!

+1

'TextToColumns'有一個'FieldInfo'參數,允許您指定日期順序(DMY等)。它不是絕對100%可靠的,特別是如果你在數據中有時間部分。如果你可以的話。我會分別解析數據而不是使用TTC。 – Rory

+0

乾杯羅裏。在這種情況下,將數據放入Userform可能會更好嗎?日期字段非常重要,因爲它不僅可以從中計算宏的結果,還可以命名結果報告 - 兩者顯然都需要正確! – Miller86

+0

我不確定用戶表單會有什麼不同?也許你可以發佈宏代碼,以便我們可以看到你實際上在做什麼。 – Rory

回答

0

好的,所以我得出結論,這不僅僅是一個本地化問題。我檢查了辦公室裏的另一臺電腦,這臺電腦設置爲英國本地化,並在那裏複製。對於這個問題,我已經遇到

兩個潛在的解決方案是:

首先,Excel將作爲一個單獨的標識日期,使用一個窗體輸入日期 - 該計劃是讓用戶單擊「選擇日期範圍」框,它將調用用戶表單「選擇日期」。這將包含六個下拉框 - 兩組三個選擇日,月和年。日期將是數字,月份文本,年份數字,因爲這將意味着用戶和Excel不會混淆哪個是哪個。

第二種解決方案是讓excel將日期存儲爲DDMMMYY - 或01jan2015例如。這是我的一位同事提出的另一種解決方案,但正如我打算在某個時候自學用戶表單一樣,現在應該是!

希望這有助於任何人誰具有同樣的問題:)

編輯 -

結束了使用該解決方案特雷弗·愛這裏建議:Formatting MM/DD/YYYY dates in textbox in VBA用戶窗體。這是優雅和有用的。

0

Guyz,

有一個非常真棒本地函數:

DatePart("d", "01/08/2015") will return you the day 
    DatePart("m", "02/08/2015") will return you the month 

此功能appearently考慮本地設置。此功能解決了我所有的問題,當我有我的代碼發送到其他地點

一個非常貧窮的解決辦法是使用:

day=Split("somedate","someseparator") 

希望這有助於

1

我有類似的問題複製日期時,分成矩陣。爲了避免誤報,我使用DateSerial(yy,mm,dd)將日期轉換爲數字,然後將其格式化爲電子表格上顯示的日期。所有計算都可以正常工作(即網絡日)。