Первая проблема, которую я бы исследовал, - Sheet1
. Имена рабочих листов в форме SheetN
являются внутренними именами Excel для рабочих таблиц. Когда создаются первые рабочие листы рабочей книги, Sheet1
равен Worksheets("Sheet1")
, Sheet2
равен Worksheets("Sheet2")
и так далее. Но как только вы начнете переименовывать или перемещать листы, эта корреспонденция может быть потеряна. Я подозреваю, что Sheet1
- это не лист с данными электронной почты.
Примечание. «Лист1» - это имя по умолчанию для первого рабочего листа в английских версиях Excel. Если ваш язык не английский, имя по умолчанию, вероятно, соответствует вашему языку.
Если вы посмотрите на панель Explorer редактора VBA, вы увидите что-то вроде этого:
VBAProject (YourNameForWorkbook.xlsm)
- Microsoft Excel Objects
Sheet1 (YourNameForWorksheet1)
Sheet2 (YourNameForWorksheet2)
- Microsoft Excel Objects
Module1
YourNameForModule
Минусы в квадратных коробках. Если есть какие-либо плюсы, группа расширяться не будет. Нажмите на плюс, чтобы развернуть. Sheet1
лист, который вы ожидаете? Если нет, то приведенные ниже инструкции помогут. Если Sheet1
- это лист, который вы ожидаете, нам нужно искать другую причину.
Если рабочая книга имеет один рабочий лист, возможно, допустимо оставить имя по умолчанию «Лист1». Я думаю, что всегда лучше переименовать рабочие листы во что-то значимое, например, «EmailDetails». Когда вы вернетесь к этой книге через шесть или двенадцать месяцев, значимые имена значительно облегчат понимание этой книги.
Далее я бы добавил еще два утверждения:
Dim WshtEmail As Worksheet
Set WshtEmail = Worksheets("EmailDetails")
Наконец, я бы заменил каждые Sheet1
на WshtEmail
.