2015-06-19 63 views
-1

我每个月都会运行一个电子邮件地址报告,并根据每个地址的域将该列表分成同一工作簿中的3张不同的工作表。每行包含大约5列数据,因此整行必须移至下一张表格。Excel脚本 - 将分割列表分成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