簡體   English   中英

Excel VBA中消息框中的日期格式

[英]Date format in a message box in Excel VBA

我已經找到了一種基於條件顯示消息框的方法,但是,顯示的日期格式不是我想要顯示的格式,也不是我的工作表中顯示的格式。 Cells(i, 4).Value是我要顯示為“ mmmm dd,yyyy”的日期值,但它顯示為“ m / d / yyyy”。 我的實際Excel數據的日期為“ mmmm dd,yyyy”。

我嘗試了多種格式化日期的方法,但始終收到錯誤消息。 是否可以在消息框中更改日期格式?

Sub Alert()
    Dim i As Long
    i = 3

    While Workbooks("Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 5) <> ""

    With Workbooks("Issuers.xlsm")

        If .Sheets("Summary of Covered Companies").Cells(i, 5).Value = 1 Then

             MsgBox Workbooks("Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 3).Value & " is issuing their next financial statement tomorrow (" & _
            Workbooks("Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 4).Value & ")."

        End If

    End With

   i = i + 1

   Wend

End Sub

以下應修復它

MsgBox Workbooks("Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 3).Value & " is issuing their next financial statement tomorrow (" & _
        Format(Workbooks("Issuers.xlsm").Sheets("Summary of Covered Companies").Cells(i, 4).Value,"[$-409]mmmm d, yyyy;@") & ")."

PS:使用宏記錄器獲取大多數excel命令,例如數字格式

我認為您可以通過使用.value的.text屬性 intead獲得所需的內容

試試這個例子:

Sub Alert() 

    Dim i       As  Long 
    Dim wb      As Workbook
    Dim ws      As Worksheet

    Dim strDisplayDate  As String
    Dim strCompany      As String

    i = 3

    Set wb = Workbooks("Issuers.xlsm")
    Set ws = wb.Sheets("Summary of Covered Companies")

    With ws
        While .Cells(i, 5) <> ""

            If .Cells(i, 5).Value = 1 Then

                strCompany = .Cells(i, 3).Value

                ' Use text not value to store what's displayed on screen            
                strDisplayDate = .Cells(i, 4).Text 

                strMessage = strCompany & " is issuing their next financial statement tomorrow (" & strDisplayDate & ")."
                MsgBox strMessage

            End If

            i = i + 1

        Wend
    End With

End Sub

如果您確實想自己格式化該值,則可以使用.Value2來獲取基礎值,例如Format(.Cells(i,4,Value2),"mmmm dd, yyyy")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM