我是VBA的新手,但我正在努力。( - :
我找到了this code,除了两个问题外,它工作得非常好: 我每次要使用它时都必须手动更改范围。 2.电子邮件不会自动发送。我必须在每个“新邮件”窗口点击“发送”,并且有超过一百个窗口......
有什么想法吗?
谢谢, 因巴尔。
答案 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