Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VBA中将月份更改为字母_Vba - Fatal编程技术网

在VBA中将月份更改为字母

在VBA中将月份更改为字母,vba,Vba,您好,我有一个当前日期的变量,我想将日期的月份更改为月份名称或任何字母 我的变量有值:19.10.2020 简而言之,我想把10号改为10号,或者,比如AA号 如何在VBA中执行此操作?每当有格式问题时,一个好的选择是查看VBA Excel宏记录器在执行任务时的功能 在这种情况下,请按如下方式格式化单元格: 将生成以下代码: Sub Macro1() ' ' Macro1 Macro ' ' Selection.NumberFormat = "[$-409]d-mmm-yy

您好,我有一个当前日期的变量,我想将日期的月份更改为月份名称或任何字母

我的变量有值:
19.10.2020

简而言之,我想把10号改为10号,或者,比如AA号


如何在VBA中执行此操作?

每当有格式问题时,一个好的选择是查看VBA Excel宏记录器在执行任务时的功能

在这种情况下,请按如下方式格式化单元格:

将生成以下代码:

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.NumberFormat = "[$-409]d-mmm-yy;@"
    Range("G8").Select
End Sub

因此,
Range(“A1”).NumberFormat=“[$-409]d-mmm-yy;@”
将是一个有效的答案。

您可以编写一个转换函数
例如:

Private Sub CommandButton1_Click()
    MsgBox (GetNewMonth("19.10.2020"))
End Sub


Private Function GetNewMonth(ByVal datestring As String) As String
Dim splitted() As String
splitted = Split(datestring, ".")
Dim day As String
Dim month As String
Dim year As String

day = splitted(0)
month = splitted(1)
year = splitted(2)

GetNewMonth = day & " " & ConvertMonthNumToLetter(CInt(month)) & " " & year

End Function

Private Function ConvertMonthNumToLetter(ByVal monthnum As Integer)
    Select Case monthnum
        Case 1
        ConvertMonthNumToLetter = "JAN"
        Case 2
        ConvertMonthNumToLetter = "FEB"
        Case 3
        ConvertMonthNumToLetter = "MAR"
        Case 4
        ConvertMonthNumToLetter = "APR"
        Case 5
        ConvertMonthNumToLetter = "MAI"
        Case 6
         ConvertMonthNumToLetter = "JUN"
        Case 7
        ConvertMonthNumToLetter = "JUL"
        Case 8
        ConvertMonthNumToLetter = "AUG"
        Case 9
        ConvertMonthNumToLetter = "SEP"
        Case 10
        ConvertMonthNumToLetter = "OCT"
        Case 11
        ConvertMonthNumToLetter = "NOV"
        Case Else
        ConvertMonthNumToLetter = "DEC"
    End Select
       
End Function
输出:

19 OCT 2020 

首先,将其转换为可以读取为日期的字符串,然后将其格式化为如下格式:

=Format(Replace("AA", ".", "/"), "d.mmm.yyyy")

-> 10.Okt.2020

您是否尝试过使用
格式$
?不,我不使用Format$,但我如何使用它?
Format$(“19-10-2020”,“嗯”)
似乎对我有用。似乎需要-而不是。在数字之间thoughFormat有很多选项,我为您提供了一个指向文档的链接,以便您选择所需的选项。日期分隔符基于windows区域设置,因此
Format$(“19.10.2020”,“mmm”)
可能适合您。那么
Format()呢
函数。我认为他的问题是,它当前是一个看起来像日期的字符串。。。基于上述评论