引用其他工作表

时间:2015-10-19 15:05:39

标签: excel vba excel-vba email

我在引用其他工作表中的电子邮件地址时遇到了一些问题,因此我可以在选择某个名称时发送电子邮件,然后打开"从下拉框中选择它会自动向该人发送电子邮件。我到目前为止:

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,但它仍然没有创建链接。

我也尝试使用拆分和连接从名称创建电子邮件地址,但无济于事。

1 个答案:

答案 0 :(得分:0)

您的问题是您使用SpecialCells(xlCellTypeConstants)。将M列作为公式之后,您的代码现在将忽略M列中具有公式的所有单元格。

您可以将xlCellTypeConstants调整为xlCellTypeFormulas,或者完全删除SpecialCells以包含这两者。