2017-10-17 121 views
0

早上好,VBA for Excel編輯日期爲DD-mmm-YYYY格式?

我今天要寫的是看看這裏的任何VBA嚮導是否可以幫助我在Excel中正確使用VBA格式化日期。我已經看過其他的解決方案,並沒有太大的幫助。

我正在使用VBA從頁面獲取條目,然後正確格式化,然後實際將其編輯爲一個SQL字符串,並將該字符串傳遞給Oracle數據庫。因此,我需要日期在:

DD-mmm-YYYY,有點像使用今天的日期「2017年10月17日」。我當前的代碼如下所示:

Range("A1").Select 
Selection.NumberFormat = "d-mmm-yyyy" 
date= UserSheet1.Cells(1, 1) 
在細胞

,似乎正常,但是當我在我的代碼中引用的「日期」變量,它顯示爲2017年10月17日。誰能幫忙?

預先感謝您的時間

+0

爲什麼一定要'DD-MON-YYYY'? Oracle接受多種數據格式,包括「DD/MM/YYYY」。 – MT0

+0

@ MT0你幾乎肯定是對的,但也許我的團隊配置數據庫的方式,它拒絕它?如果它不是以其他方式不幸呈現,我會得到一個錯誤:( – bm0r3son

+0

請給出一個[MCVE],包括您用來將值傳遞給Oracle的代碼。 https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)可能通過修復如何將日期傳遞給Oracle而不是將日期轉換爲不同的格式來解決。 – MT0

回答

1
  1. 不使用.Select它會減慢代碼。

  2. 使用.Text可以返回單元格中的文本,否則返回.Value,這是一個數字,即從1/1/1900開始的天數。

這樣:

Range("A1").NumberFormat = "d-mmm-yyyy" 
date= UserSheet1.Cells(1, 1).Text 
+0

嗨,斯科特·克萊納: 感謝您的回答!我不知道只是抓住了單元格中的「文本」,這似乎回答了我的問題並解決了問題,並且感謝您的提示。 ! – bm0r3son