【发布时间】:2014-05-22 12:39:29
【问题描述】:
我正在尝试在 VBA 中使用 vlookup 函数,以便根据当前日期,它将与 Excel 工作表中的日期匹配并给出相应的值。这将通过邮件发送。我的问题是,当我将变量声明为 Date 时,它的显示类型不匹配,但如果它是字符串,则没有任何问题(但我还必须以文本格式在工作簿中输入相应的值)。这有点乏味.我一直在excel中使用短日期,但不知道为什么它显示类型不匹配。下面提到了代码
Sub Send_Email_Using_VBA()
Dim Email_Subject, Email_Send_From, Email_Send_To, _
Email_Cc, Email_Bcc, Email_Body As String
Dim Ldate As Date
Dim Mail_Object, Mail_Single As Variant
Email_Subject = "Trying to send email using VBA"
Email_Send_From = "*****@*****.***"
Email_Send_To = "***@****.***"
Email_Cc = ""
Email_Bcc = ""
Ldate = Date
Email_Body = Application.VLookup(Ldate, Sheet1.Range("A1:B4"), 2, False)
On Error GoTo debugs
Set Mail_Object = CreateObject("Outlook.Application")
Set Mail_Single = Mail_Object.CreateItem(0)
With Mail_Single
.Subject = Email_Subject
.To = Email_Send_To
.cc = Email_Cc
.BCC = Email_Bcc
.Body = Email_Body
.send
End With
Exit Sub
debugs:
If Err.Description <> "" Then MsgBox Err.Description
End Sub
【问题讨论】:
-
以Option Explicit开头,注意Email_Subject是Variant,Email_Body是String。
-
Dim LDate As String然后LDate = CStr(Date)?
标签: vba excel excel-2010