2017-10-17 122 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