Я не работал с VBA некоторое время, и вот что я пытаюсь сделать: у меня есть рабочий стол с столбцом идентификационных номеров, а затем куча столбцов, которые ссылаются на ли человек с этим удостоверением личности сделал что-то («1») или нет («0»). Что-то вроде этого:Условно скопировать ячейки в новую рабочую книгу
ID Task1 Task2 Task3
103 1 1 0
129 0 1 0
154 1 1 1
189 1 0 1
204 0 1 1
То, что я хочу макрос сделать, это создать новую книгу для каждой задачи (и сохранить книгу под названием этой задачи), а затем заполнить каждую книгу только с ID # с тех, кто выполнил задачу. Таким образом, он должен создать и сохранить книгу под названием «Task1», которая имеет значения 103, 154 и 189 в столбце A, создать и сохранить отдельную книгу под названием «Task2», которая имеет значения 103, 129, 154 и 204 в столбце A и т. д.
Я пока не очень удался. Я пришел с этим:
Sub CopyToWorkbooks()
Dim lRow, lCol As Integer
Sheets("Sheet1").Select
lRow = Range("A" & Rows.Count).End(xlUp).Row
lCol = Cells(1, Columns.Count).End(xlToLeft).Column
For Each cell In Range(Cells(1, "B"), Cells(1, lCol))
Union(Range("A1:A" & lRow), Range(Cells(1, cell.Column), Cells(lRow, cell.Column))).Copy
Workbooks.Add
Range("A1").PasteSpecial
ActiveWorkbook.SaveAs Filename:= _
"Users:User:Desktop:WorkbookFolder:" & cell.Value & ".xls" 'For saving the workbook on a Mac
ActiveWorkbook.Close
Next cell
Application.CutCopyMode = False
End Sub
Это успешно создает и сохранить 3 отдельные книги с правильными именами рабочих книг, но он копирует все значения в столбце А и все из значений в столбце, что соответствует с новым книга имя. Так, например, рабочая тетрадь «Task2» выглядит так:
ID Task2
103 1
129 1
154 1
189 0
204 1
Любая помощь была бы принята с благодарностью. Благодаря!
Спасибо, это работает отлично! Я тестировал оба ответа, предоставленные Søren и ZAT, и оба выполняли эту работу, но этот метод работает намного быстрее. – abclist19