【问题标题】:Convert month name into number将月份名称转换为数字
【发布时间】:2012-08-07 09:01:11
【问题描述】:

我有填充月份的下拉框。选择一个月后,我想将其转换为月份编号,有没有可以做到这一点的功能?

例如。九月 = 9

【问题讨论】:

    标签: excel date vba


    【解决方案1】:

    另一种方式

    Excel 公式

    =MONTH(1&A1)
    

    VBA

    Sub Sample()
        Dim MonthNm As String
        MonthNm = "September"
        Debug.Print Month(DateValue("01 " & MonthNm & " 2012"))
    End Sub
    

    Sub Sample()
        Dim MonthNm As String
        MonthNm = "September"
        Debug.Print Application.Evaluate("=MONTH(1&" & Chr(34) & MonthNm & Chr(34) & ")")
    End Sub
    

    替换

    【讨论】:

      【解决方案2】:

      试试这个...

       =MONTH(DATEVALUE(A1&"1"))
      

      A1 单元格包含月份名称。

      【讨论】:

      • 昨天我在看你的个人资料,当我看到这个问题时,我很确定你会是第一个回答的人……但是当它没有得到回应时;我想让我试一试。谢谢!!
      • 我已经知道答案,但想在发布之前测试所有三个(我必须说一个不可思议的习惯):)
      【解决方案3】:
      Sub month()
      
      Dim monthh As Integer
      
      monthh = month(Date)
      
      MsgBox monthh
      
      End Sub
      

      试试这个。

      【讨论】:

        【解决方案4】:

        另一个 excel 公式,其中A1 是带有月份名称的单元格 ID:

        =TEXT(DATEVALUE(A1&" 1"), "m")
        

        【讨论】:

          【解决方案5】:

          这个解决方案对我不起作用(Excel 2010),我不得不将月份名称缩短为 3 个字符,并在缩短的字符串前面添加日期。

          =MONTH(1&LEFT(A1;3))
          

          【讨论】:

            【解决方案6】:

            另一种 VBA 解决方案

            为了艺术,除了 Siddharth 的有效答案 :-)

            Sub SampleTM()
              Dim MonthNm$: MonthNm = "September"
              Debug.Print MonthNm2Num(MonthNm)
            End Sub
            
            Function MonthNm2Num(ByVal MonthNm) As Long
                MonthNm2Num = Format(CDate(MonthNm & "/1 0"), "m") * 1&
            End Function
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-03-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-04
              相关资源
              最近更新 更多