我在引用其他工作表中的电子邮件地址时遇到了一些问题,因此我可以在选择某个名称时发送电子邮件,然后打开"从下拉框中选择它会自动向该人发送电子邮件。我到目前为止:
Sub Macro1()
Dim OutApp As Object
Dim OutMail As Object
Dim cell As Range
Application.ScreenUpdating = False
Set OutApp = CreateObject("Outlook.Application")
On Error GoTo cleanup
For Each cell In Columns("M").Cells.SpecialCells(xlCellTypeConstants)
If cell.Value Like "?*@xyz.com" And _
LCase(Cells(cell.Row, "N").Value) = "open" Then
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = cell.Value
.Subject = "Open Issue"
.Body = "Dear " & Cells(cell.Row, "J").Value _
& vbNewLine & _
"Issue raised: " & Cells(cell.Row, "C").Value _
& vbNewLine & _
"Regards"
.Send
End With
On Error GoTo 0
Set OutMail = Nothing
End If
Next cell
cleanup:
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub
如果我手动将电子邮件地址输入到列M
,但我尝试将其设置为当J
中的下拉框中的名称与电子邮件匹配时到名称并在"打开"从列N
中选择。
我在另一张表格中创建了一个包含姓名和电子邮件的表格,M
使用VLookup
来引用=VLOOKUP(J3,Team!B5:E8,4,FALSE)
。我尝试在HYPERLINK
前面添加VLOOKUP
,但它仍然没有创建链接。
我也尝试使用拆分和连接从名称创建电子邮件地址,但无济于事。
答案 0 :(得分:0)
您的问题是您使用SpecialCells(xlCellTypeConstants)
。将M列作为公式之后,您的代码现在将忽略M列中具有公式的所有单元格。
您可以将xlCellTypeConstants
调整为xlCellTypeFormulas
,或者完全删除SpecialCells
以包含这两者。