邮件将行显示给范围内的每个人

时间:2014-11-18 16:06:47

标签: excel vba excel-vba

我是VBA的新手,但我正在努力。( - :

我找到了this code,除了两个问题外,它工作得非常好:  我每次要使用它时都必须手动更改范围。  2.电子邮件不会自动发送。我必须在每个“新邮件”窗口点击“发送”,并且有超过一百个窗口......

有什么想法吗?

谢谢, 因巴尔。

1 个答案:

答案 0 :(得分:0)

假设学校名称是专栏" E"此宏将每行复制到一个新工作表中,该工作表将使用E列中的school_name创建并命名为学校名称。然后,您必须通过电子邮件将每个工作表发送到相应的学校(可以在单独的宏中自动执行)

编辑:固定代码和经过测试的工作:

Sub SortKids()

Dim CurRow As Long
Dim LastRow As Long
Dim NameTest As String, NameStr As String
Dim DestRow As Long
Dim NewWS As Worksheet

On Error Resume Next

LastRow = Sheets("Master").Range("A" & Rows.Count).End(xlUp).Row

For CurRow = 2 To LastRow
    If Sheets("Master").Range("E" & CurRow).Value = "" Then
        NameStr = "Error"
    Else
        NameStr = Sheets("Master").Range("E" & CurRow).Value
    End If
    NameTest = Worksheets(NameStr).Name
    If Err.Number = 0 Then
    Else
        Err.Clear
        Set NewWS = ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count))
            NewWS.Name = NameStr
        Sheets("Master").Rows(1).Copy
        Sheets(NameStr).Rows(1).PasteSpecial
    End If
    DestRow = Sheets(NameStr).Range("A" & Rows.Count).End(xlUp).Row + 1
    Sheets("Master").Rows(CurRow).Copy
    Sheets(NameStr).Rows(DestRow).PasteSpecial
Next CurRow

MsgBox "Done"

End Sub