Як переглядати робочий аркуш Excel за допомогою VBA

Поділитися зараз:

Іноді корисно читати аркуш за рядком і вибірково брати з нього дані. Наведений нижче приклад показує, як це зробити.

У статті передбачається, що читач відображає стрічку розробника та знайомий з редактором 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

Пошкодження файлів ExcelЧас від часу ми стикаємося з пошкодженням робочих книг до такої міри, що сам Excel не може їх відновити. Це катастрофа для більшості користувачів Excel, включаючи експертів. Однак, якщо у вас є ефективний інструмент відновлення, ви можете відновити пошкоджені файли xlsx легко і швидко.

Вступ автора:

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

Поділитися зараз:

Коментарі закриті.