尝试将工作表复制到电子邮件时出现错误

问题描述 投票:0回答:1

我正在尝试自动复制和发送电子邮件。但是,如果我将200更改为50,则会在行(sh.Range("A1:D200" & lr).Select)上出现错误,但是在200上它不起作用。我得到的错误是1004 out of range

Option Explicit

Sub Send_Email_With_snapshotDyka()
Dim sh As Worksheet
Set sh = ThisWorkbook.Sheets("Dyka PVC")

Dim lr As Integer
lr = sh.Range("A" & Application.Rows.Count).End(xlUp).Row

sh.Range("A1:D200" & lr).Select

With Selection.Parent.MailEnvelope.Item
    .to = sh.Range("H3").Value
    .Subject = sh.Range("H4").Value
    .send

End With

MsgBox "done"

End Sub
excel vba outlook
1个回答
1
投票

以下行存在问题:

sh.Range("A1:D200" & lr).Select

发生的情况是您在(D200)中填充范围的末尾,然后将lastrow的值添加到该终止范围。假设lastrow是50,excel将看到您设置为“ D200”和“ 50”的范围,使其变成“ D20050”,这显然不是您想要的。像这样修改行:

sh.Range("A1:D" & lr).Select

这将为您提供“ A1:D”和“ 50”的范围,使其成为“ A1:D50”,这是正确的输出。

© www.soinside.com 2019 - 2024. All rights reserved.