[英]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.