Іноді корисно читати аркуш за рядком і вибірково брати з нього дані. Наведений нижче приклад показує, як це зробити.
У статті передбачається, що читач відображає стрічку розробника та знайомий з редактором VBA. Якщо ні, будь ласка, перегляньте Google “Вкладка розробника Excel” або “Вікно коду Excel”.
У наступному прикладі маніпулюють даними, перевіряючи кожен рядок адрес електронної пошти та об’єднуючи їх в один рядок адреси. Поки Excel має вбудовані функції транспонування, ми маємо намір разом із нашим кодом виключити певних адресатів та додати роздільники.
Нашій програмі потрібен лише один аркуш. Скопіюйте інформацію нижче в комірку A1:
| Адреса електронної пошти |
| tcruise@paramount.com |
| julia.R@disney.com |
| Jules.dassin@gaumont.co.fr |
| EnricoFellini@cinecitta.co.it |
| marymontrary@bedlam.org.uk |
Помістіть кнопку у форму, щоб розпочати код.
Припустимо, що таких електронних листів сотні, а не лише п'ять; ми хочемо надіслати кожному одне й те саме повідомлення та одну й ту саму копію нашого сценарію. Існує кілька способів зробити це, зокрема, викликаючи програму розсилки електронною поштою, таку як Outlook, з коду VBA. Однак ця вправа служить двом цілям:
- Покажіть, як легко перебирати робочий аркуш;
- Виділіть здатність Excel перевіряти кожен рядок і діяти відповідно до нього.
Кодекс VBA
Код VBA об'єднає всі адреси, вставляючи після них кому, щоб їх можна було вставити одним полом у поле адреса адреса електронної пошти. З коду ви зауважите, що після вивчення рядків він виключить французькі.
Вставте модуль і введіть наступне:
Option Explicit
Dim strEmail As String
Dim strAll As String
Sub Main()
strAll = ""
Range("C2") = strAll 'clear previous program results
Sheets("Sheet1").Select
Range("A2").Select
Do While ActiveCell > "" 'loop until row 7
strEmail = ActiveCell
If Right(strEmail, 2) <> "fr" Then 'exclude France
strAll = strAll & strEmail & ";"
End If
Range("A" & ActiveCell.Row + 1).Select 'move on a row in the SAME column
Loop
Range("C2") = strAll
End Sub
Код зберігає активну комірку в стовпці A, лише рядки рухаються далі. Для посилання на інформацію в іншому місці підряд ми використали б:
Variable = Activecell.offset(offset rows, offset columns)
Наприклад, щоб отримати значення зі стовпця B в активному рядку, код буде читати Activecell.offset (0, 1). Отримати значення A2, коли ми знаходимося в A3, буде читати Activecell.offset (-1, 0).
Щоб протестувати свій код, призначте кнопку макросу «Основний».
Деякі постачальники Інтернет-послуг, як запобіжний засіб проти спаму, можуть обмежити кількість електронних листів, які ви можете надсилати одночасно. Якщо ви використовуєте цей метод, мабуть, найкраще проконсультуватися з ними, перш ніж відправляти сотні листів за один раз.
Виправлення пошкоджень файлів Excel

Вступ автора:
Фелікс Хукер - фахівець з відновлення даних у DataNumen, Inc., яка є світовим лідером у галузі технологій відновлення даних, в тому числі ремонт rar корупція та програмні продукти для відновлення sql. Для отримання додаткової інформації відвідайте WWW.datanumen.com
