Много лет назад нам пришлось придумывать решение для результатов опроса, которые мы получали через CSV. Тогда мы получали данные, где первый столбец был электронным письмом, а последующие столбцы были 1 или нулем, чтобы указать интерес к организации. Мы пытались найти решение, которое проходило через каждый столбец ПОСЛЕ столбца электронной почты, и сохраняло в отдельных рабочих книгах список электронных писем для каждого столбца, в котором была 1, чтобы мы могли отправить его этим организациям.
Наши данные (упрощенно) выглядели так:
Где конечный результат предоставил бы 4 новых файла .xlsx (club1.xlsx, club2.xlsx, club3.xlsx и т.д.), Каждое из которых содержало «электронные письма», у которых в строке были 1 для соответствующего столбца. (В приведенном выше примере Club1.xlsx будет иметь в списке Email1, Email3, Email7)
В то время сообщество StackExchange было очень полезным, помогая нам найти решение, предоставив следующий код VBA для запуска макроса:
Option Explicit
Sub FilterData()
Dim Responses As Worksheet
Dim Column As Long
Set Responses = ThisWorkbook.Worksheets("Responses")
Column = 2
Do While Responses.Cells(1, Column).Value <> ""
With Workbooks.Add(xlWBATWorksheet)
With .Worksheets(1)
Responses.Cells.Copy .Cells
.Columns(Column).AutoFilter Field:=1, Criteria1:="<>1"
.Rows(2).Resize(.Rows.Count - 1).Delete Shift:=xlUp
.Columns(2).Resize(, .Columns.Count - 1).Delete Shift:=xlShiftToLeft
End With
.Close SaveChanges:=True, Filename:=ThisWorkbook.Path & "\" & Responses.Cells(1, Column).Value
End With
Column = Column + 1
Loop
End Sub
Но с тех пор наш макет изменился, и мы не можем понять, как изменить код, чтобы включить в него больше столбцов. Вместо того, чтобы просто иметь столбец «Электронная почта», теперь у нас есть дополнительные столбцы для Предпочитаемое имя, Имя, Фамилия и Местоимения. Наши попытки изменить приведенный выше код только послужили либо полному разрушению макроса, либо сохранению только одной строки.
Кто-нибудь получит и посоветует, как мы могли бы либо написать новый код, либо изменить существующий код, чтобы включить все столбцы в наши экспорты (чтобы Club1.xlsx теперь имел данные столбцов / строк для упомянутого имени, имени, фамилии, Местоимения и электронные письма для каждого столбца с "1").
Какие-нибудь мысли? Я в тупике.