Использование отфильтрованного столбца адресов электронной почты в Excel для создания новой электронной почты - PullRequest
0 голосов
/ 11 февраля 2019

В Excel VBA 2013 требуется использовать отфильтрованные ячейки в Excel в качестве источника адресов электронной почты для передачи в процедуру создания нового электронного письма.

Мои данные выглядят так:

enter image description here

У меня есть строка кода, которая должна выбрать все данные (адреса электронной почты) в столбце B после строки заголовка:

Dim recipients As String
....
recipients = Join(Application.Transpose(.Range("B6" & .Rows.Count).Value), ";")

В этой строке выдается ошибка «Недопустимая или неквалифицированная ссылка».

Строка получателей позднее передается процедуре электронной почты.Для полноты электронной почты VBA:

With OutMail
  .Subject = "Some subject"
  .Body = "Get a body for the email"
  .To = recipients
  .Importance = olImportanceHigh
  .Display
End With

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Вот как вы можете перебирать отфильтрованные ячейки в коде:

Dim recipients As String
Dim recipient As Range
With ThisWorkbook.Sheets("Sheet1") ' Or ActiveSheet
   For Each recipient In .Range("B6:B" & .UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Cells
      recipients = recipients + recipient + ";"
   Next recipient
End With
0 голосов
/ 11 февраля 2019

1: Ваш диапазон должен быть: Range("B6:B" & .Rows.Count)

2: Вы должны ограничить строки используемой областью Range("B6:B" & .UsedRange.Rows.Count)

3: чтобы выбрать только отфильтрованные ячейки, вам нужноadd .SpecialCells(xlCellTypeVisible)

Примерно так:

recipients = Join(Application.Transpose(.Range("B6:B" & .UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value), ";")

4: вероятно, лучше использовать итерации в коде, а не использовать Transpose / Join: в противном случае вы можете получить ошибку, когда только1 адрес электронной почты отфильтрован, или электронные письма не видны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...