Я получаю сообщение об ошибке при попытке скопировать лист на электронную почту - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь автоматизировать копирование и отправку писем.Однако я получаю сообщение об ошибке (sh.Range("A1:D200" & lr).Select), если я изменяю 200 на 50 , это работает, но с 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

1 Ответ

1 голос
/ 25 сентября 2019

Существует проблема со следующей строкой:

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», что является правильным выходом.

...