我的日期变量格式为:25_December_2010
一旦我使用
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate,"_"," ")
MsgBox strDate
肯定会弹出一个MsgBox
给我:2010年12月25日。
但是,一旦我尝试将值放入单元格,例如:
Sheets("Sheet1").Range("A1").Value = strdate
而不是使用cell
填充25 December 2010
; Excel会自行处理并使用错误的条目配置填充单元格:25-Dec-2010
!
如何填充我的单元格,中间没有hyphen
个字符且没有修剪月份名称?
答案 0 :(得分:4)
此代码以你想要的格式将日期放入A1:
Option Explicit
Sub WriteDate()
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate, "_", " ")
MsgBox strDate
With Sheets("Sheet1").Range("A1")
.Value = strDate
.NumberFormat = "dd mmmm yyyy"
End With
End Sub
我不确定是否有必要,但为了清楚起见,因为strDate是字符串数据类型,我可能会使用
.Value = CDate(strDate)
在将其写入工作表之前将其显式转换为Date数据类型可能在非英语版本中有价值,但我没有特别检查。
答案 1 :(得分:1)
使用自定义日期格式:
Sheets("Sheet1").Range("A1").NumberFormat = "dd mmmm yy" //A1 = 25 December 10
答案 2 :(得分:1)
Excel表没有错,所以别说它了。日期是自开始日期以来的天数的计数。因此,日期为 NUMBER 。您可以根据需要对其进行格式化。
这是VBA,excel类似,但起始日期不同。
日期变量存储为IEEE 64位(8字节)浮点数,表示从9999年1月1日到12月31日以及从0:00:00到23:59:59的日期。任何可识别的文字日期值都可以分配给Date变量。日期文字必须用数字符号(#)括起来,例如#1993年1月1日#1或#1 Jan 93#。
日期变量根据计算机识别的短日期格式显示日期。时间根据计算机识别的时间格式(12小时或24小时)显示。
当其他数字类型转换为日期时,小数点左侧的值表示日期信息,而小数点右侧的值表示时间。午夜为0,午间为0.5。负整数表示1899年12月30日之前的日期。
日期8字节1月1日,100日至9999年12月31日
这是在Excel中显示的内容。
Selection.NumberFormat = "d mm yyyy"
这适用于我
Sub DateF()
Dim strDate As String
strDate = "25_December_2010"
strDate = Replace(strDate, "_", " ")
MsgBox strDate
Worksheets("Sheet1").Range("A1").NumberFormat = "dd mm yy"
Worksheets("Sheet1").Range("A1").Value = strDate
End Sub
我也从表中更改了它。到工作表。