vba string转化为日期型

Sub EndOfLastMonth()
CurrentDateTimeString = Format$(Date, "dd-MM-yy")
monthString = Month(CurrentDateTimeString)
If (monthString = 12) Then
LastMonth = 1
Else
LastMonth = monthString - 1
End If

Select Case LastMonth
Case 1, 3, 5, 7, 8, 10, 12
LastDate = 31
Case 2
LastDate = 28
Case Else
LastDate = 30
End Select
LastMonthString = LastDate & " - " & LastMonth & " - " & "2017"
MsgBox (LastMonthString)
End Sub

这段代码实现的是30-10-2017的弹窗
我需要把日期从string型转化为日期型并且赋值到某一个单元格里 请问怎么实现?

方法和详细的操作步骤如下:

1、第一步,双击以打开Excel表,见下图,转到下面的步骤。

2、第二步,执行完上面的操作之后,选择底部的工作表,然后右键单击“查看代码”选项,见下图,转到下面的步骤。

3、第三步,执行完上面的操作之后,输入日期格式转换代码,代码见下图,转到下面的步骤。

4、第四步,执行完上面的操作之后,单击工具栏中的“三角形”按钮,见下图,转到下面的步骤。

5、第五步,执行完上面的操作之后,成功显示转化为日期型,见下图。这样,就解决了这个问题了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-15

vba 中可以使用 CDate 函数,将符合格式的字符串转换成日期类型的数值。

CDate 函数的定义如下:

Cdate(日期表达式)
功能:将日期表达式转换成日期类型的数据。
说明:日期表达式是任何可以解释成日期的表达式,包含日期文字,可以看作日期的字符串以及从函数返回的日期。

示例代码:

Private Sub CommandButton1_Click()
    CurrentDateTimeString = Format$(Date, "dd-MM-yy")
    monthString = Month(CurrentDateTimeString)
    
    If (monthString = 12) Then
        LastMonth = 1
    Else
        LastMonth = monthString - 1
    End If
    
    Select Case LastMonth
        Case 1, 3, 5, 7, 8, 10, 12
            LastDate = 31
        Case 2
            LastDate = 28
        Case Else
            LastDate = 30
    End Select
    
    LastMonthString = LastDate & " - " & LastMonth & " - " & "2017"
    
    Range("A3").Value = CDate(LastMonthString) '设置 A3 单元格为当前日期
    
    MsgBox (LastMonthString)
End Sub

运行结果:

本回答被网友采纳
第2个回答  2017-11-11
CInt(val(string))追问

请问可以详细讲讲吗?