2015-05-26 35 views
0

在ActiveX TextBox中是否有將日期格式設置爲dd-mmm-yyyy的方法?在ActiveX文本框中設置日期格式爲dd-mmm-yyyy VBA

我正在使用下面的代碼來分隔報價,但在用戶放置月份時出現一個錯誤,即31-May-1993,但有時用戶正在放置2015年5月31日。

因爲這無法通過讀取服務器上的數據...

Private Sub TextBox1_Change() 
    If TextBox1.TextLength = 2 Or TextBox1.TextLength = 6 Then 
    TextBox1.Text = TextBox1.Text + "-" 
    End If 
End Sub 
+0

爲什麼你使用Textbox接受日期?您可能想看到[This](http://stackoverflow.com/questions/12012206/formatting-mm-dd-yyyy-dates-in-textbox-in-vba/12013961#12013961) –

+0

@SiddharthRout ...我檢查你的帖子,但問題是無法下載該表格... –

+0

爲什麼你會得到什麼錯誤信息? –

回答

1

我可以建議你採取不同的方式與這一點,這樣做(注意這是未經測試,而不是最終的代碼只有幾你會如何處理這個建議):

Private Sub Textbox1_LostFocus() 
    Dim Da as Date 
    Da = CDate(Textbox1.Text) 
    Textbox1.Text = Format(Da, "dd-mmm-yyyy") 
End Sub 

這將:

  • 採取任何文本(LostFocus,而不是每按一次鍵)
  • 將該值轉換爲日期
  • 以您需要的格式放回到文本框(dd-mmm-yyyy)

然後,您可以在此添加錯誤處理,以便如果vba無法將其轉換爲日期,則可能會向用戶報告他們輸入了錯誤的值並在繼續之前對其進行了更正。

我也不主張這是最佳實踐,而是OP可以讓他的方法工作的一種方式。

+0

嗯,這實際上退出簡單....感謝您的簡單解決方案... –