VBA到Outlook问题 – 不要用逗号表示数字

通过VBA生成Outlook电子邮件时遇到问题。 问题是,当VBA将信息从Excel工作表导出到Outlook时,Excel工作表中的数字将始终使用逗号将其转换为数字,而不是Excel中的原始格式。 请参阅下面的代码。 我需要在D列的一个单元格中去掉逗号。 如果d是123456,在Outlook中,它会显示123456,但我不想要逗号。

谢谢!

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 

如果您需要在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中的所有单元格恢复为macros开始处D1中的格式。 如果不同的单元格具有不同的格式,代码将需要更复杂一点。