【问题标题】:E-mailing selected Range in Excel/Outlook在 Excel/Outlook 中通过电子邮件发送选定的范围
【发布时间】:2015-05-21 19:58:06
【问题描述】:

我有以下代码(由Ron de Bruin 提供),我正在尝试弄清楚如何自定义它以供我自己使用。

当我运行代码时,什么也没有发生(因为错误处理程序在“下标超出范围”错误时停止宏),

但是当我换行时:

ActiveWorkbook.EnvelopeVisible = False

到:

ActiveWorkbook.EnvelopeVisible = True

可见的信封允许我进行选择并选择我要发送给谁等。

我想知道为什么它会遇到“超出范围”错误,以及是否可以让该过程自动完成而无需我在事件触发后输入内容[它是从 Workbook_Open( ) 事件 - 如果这有什么不同,并且选择是在同一工作簿内的另一个工作表 (Worksheet("ValLog")) 中进行的]

我运行的代码是:

Private Sub workbook_open()

Dim AWorksheet As Worksheet
Dim Sendrng, rng As Range
Dim answer As Integer

On Error GoTo StopMacro

answer = MsgBox("Do you want to send e-mail notifications of upcoming tours?", vbYesNo)

If answer = vbYes Then

With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

Set Sendrng = Worksheets("ValLog").Range("B5:K12").Select

With Sendrng

    'Select the range you want to mail
    Range("B5:K12").Select

    ' Create the mail and send it
    ActiveWorkbook.EnvelopeVisible = True
    With .Parent.MailEnvelope

        .Introduction = "Test Test Test"

        With .Item
            .To = "myemail@blahblah.com"
            .CC = ""
            .BCC = ""
            .Subject = "Why, Error?"
            .Send
        End With

    End With

StopMacro:
With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
ActiveWorkbook.EnvelopeVisible = False

End With

Else
'Do Nothing
End If

End Sub

【问题讨论】:

    标签: excel vba outlook automated-deployment


    【解决方案1】:

    首先,您没有将 SendRange 声明为范围。行:

    Dim SendRange, rng As Range
    

    将 SendRange 声明为一个变体,将 rng 声明为一个范围。将其更改为:

    Dim SendRange As Range, rng As Range
    

    二、换行:

    Set Sendrng = Worksheets("ValLog").Range("B5:K12").Select
    

    到:

    Set Sendrng = Worksheets("ValLog").Range("B5:K12")
    

    您试图在此处设置范围,而不是选择它。

    然后,改变:

    Range("B5:K12").Select
    

    到:

    .Select
    

    您在代码中实际所做的是选择活动表中的范围(因为您没有在范围之前定义工作表)。通过将其放在“With”语句中,每个语句都带有“。”在它将从 with 语句继承术语之前。因此,使用“.Select”,您实际上正在运行“Sendrng.Select”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-14
      • 2012-03-03
      • 1970-01-01
      • 2018-01-10
      • 2014-01-24
      • 2018-07-24
      相关资源
      最近更新 更多