2015-06-19 2 views
-1

Каждый месяц я запускаю отчет по адресам электронной почты и разбиваю список на 3 разных листа в одной книге в зависимости от домена каждого адреса. Каждая строка содержит около 5 столбцов данных, поэтому вся строка должна быть перенесена на следующий лист.Excel Script - Разделить список на 3 листа

Это будет выглядеть примерно так:

Если столбец B содержит "@ aaaaaa.com" держать строку на листе 1.

Если столбец B содержит "@ bbbbbb.com" переместить весь строка на лист 2.

Если столбец B содержит "@ cccccc.com" переместить всю строку лист 3. Проверки следующей строке

В конце концов мне нужно 3 отдельных листа, которые содержат список каждого из трех доменных адресов электронной почты. Я делаю это вручную, и через 400+ строк слишком утомительно, когда я теперь лучший способ. Любая помощь по этому поводу будет высоко оценена!

+0

По крайней мере, использовать записи макросов первого и после этого кода здесь, а затем обратиться за помощью с ним ... –

+0

Да вы могли бы сделать это с помощью VBA, но теперь вы просто хотите, чтобы мы сделали работу за вас. Это не очень хороший подход. Здесь, в StackOverflow, мы хотим помочь тем, кто проявляет свои усилия. Сначала вы должны опубликовать свой код! – ZygD

+0

Что вы сделали до сих пор в VBA? Может быть, мы сможем помочь. – Whitecat

ответ

1

Этого должно быть достаточно, чтобы вы начали.

Sub split() 

Dim lastrow As Integer 
Dim ws1 As Worksheet 
Dim ws2 As Worksheet 
Dim ws3 As Worksheet 
Dim domain As String 
Dim a As String 
Dim b As String 
Dim c As String 

Set ws1 = Worksheets(1) 
Set ws2 = Worksheets(2) 
Set ws3 = Worksheets(3) 

a = "aaaaaa.com" 
b = "bbbbbb.com" 
c = "cccccc.com" 

lastrow = ws1.Cells(ws1.Rows.Count, "B").End(xlUp).Row 

ws1.Select 

For i = 1 To lastrow 

    domain = Right(Cells(i, 2), 10) 

    If domain = b Then 

     Rows(i).Copy 
     ws2.Cells(i, 1).PasteSpecial 

    End If 

Next i 

End Sub 
+0

Вы, к ответу, были наиболее полезны! Это отличная отправная точка. – BayPros

Смежные вопросы