У меня есть список в Excel, содержащее сведение о людях Содержит Город, адрес и имяExcel VBA, чтобы скопировать список нового лист
Мне нужно, чтобы захватить столбец Города и создать таблицу для каждого города, а затем скопировать данные с листа1 на этот новый рабочий лист.
Итак, если у меня есть город по имени Дублин, мне нужен макрос, чтобы создать новый лист с именем dublin, зайдите в список, возьмите все города по имени Дублин, скопируйте и вставьте их в рабочий лист в Дублине (также как, конечно, другие столбцы)
Я использую макросы по этой ссылке: http://www.mrexcel.com/forum/excel-questions/727407-visual-basic-applications-split-data-into-multiple-worksheets-based-column.html создатель mirabeau.
Код выглядит следующим образом:
Sub columntosheets()
Const sname As String = "Sheet1" 'change to whatever starting sheet
Const s As String = "A" 'change to whatever criterion column
Dim d As Object, a, cc&
Dim p&, i&, rws&, cls&
Set d = CreateObject("scripting.dictionary")
With Sheets(sname)
rws = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
cls = .Cells.Find("*", , , , xlByColumns, xlPrevious).Column
cc = .Columns(s).Column
End With
For Each sh In Worksheets
d(sh.Name) = 1
Next sh
Application.ScreenUpdating = False
With Sheets.Add(after:=Sheets(sname))
Sheets(sname).Cells(1).Resize(rws, cls).Copy .Cells(1)
.Cells(1).Resize(rws, cls).Sort .Cells(cc), 2, Header:=xlYes
a = .Cells(cc).Resize(rws + 1, 1)
p = 2
For i = 2 To rws + 1
If a(i, 1) <> a(p, 1) Then
If d(a(p, 1)) <> 1 Then
Sheets.Add.Name = a(p, 1)
.Cells(1).Resize(, cls).Copy Cells(1)
.Cells(p, 1).Resize(i - p, cls).Copy Cells(2, 1)
End If
p = i
End If
Next i
Application.DisplayAlerts = False
.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End With
Sheets(sname).Activate
End Sub
выше может создавать рабочие листы для каждого города, но не копирует данные во вновь созданных рабочих листов. Как это может быть сделано? У меня очень ограниченное знание VBA, и я полностью потерял это.
Вы пытались дублировать рабочий лист, сортировать по городам, а затем удалять то, что вам не нужно по порядку? Таким образом, вам не нужно беспокоиться о копировании чего-либо. – Lumigraphics