我在通过VBA生成Outlook电子邮件时遇到问题。问题是当VBA将Excel工作表中的信息导出到Outlook时,Excel工作表上的数字将始终用逗号转换为数字,而不是Excel中的原始格式。请参阅以下代码。我需要在D列的一个单元格中删除逗号。如果d是123456,在Outlook中,它将显示123,456,但我不想要逗号。
谢谢!
dim a , b, c, d, e as integer
ActiveSheet.Range("A6").Value = a
ActiveSheet.Range("B6").Value = b
ActiveSheet.Range("C6").Value = c
ActiveSheet.Range("D6").Value = d
ActiveSheet.Range("E6").Value = e
Set msg_range = ActiveSheet.Range("A1", "E66")
Set MItem = OutlookApp.CreateItem(0)
With MItem
.To = toEmails
.CC = ccEmails
.Subject = email_subject
.HTMLBody = RangetoHTML(msg_range) & "<IMG SRC=""signatures.png"">"
.Display
End With
答案 0 :(得分:1)
如果您需要在Excel中使用逗号格式化单元格,但在将其放入电子邮件时希望使用D列的常规格式,则可以尝试使用
dim a , b, c, d, e as integer ' Note: This command is only declaring e to be integer
' a, b, c and d are being declared as Variant
Dim oldFormat As String
ActiveSheet.Range("A6").Value = a
ActiveSheet.Range("B6").Value = b
ActiveSheet.Range("C6").Value = c
ActiveSheet.Range("D6").Value = d
ActiveSheet.Range("E6").Value = e
Set msg_range = ActiveSheet.Range("A1", "E66")
oldFormat = ActiveSheet.Range("D1").NumberFormat
ActiveSheet.Range("D1:D66").NumberFormat = "General"
Set MItem = OutlookApp.CreateItem(0)
With MItem
.To = toEmails
.CC = ccEmails
.Subject = email_subject
.HTMLBody = RangetoHTML(msg_range) & "<IMG SRC=""signatures.png"">"
.Display
End With
ActiveSheet.Range("D1:D66").NumberFormat = oldFormat
注意:这会将D1:D66中的所有单元格设置回宏开始时D1中存在的格式。如果各种单元格具有不同的格式,则代码需要更复杂一些。