Я довольно недавно знаком с Excel vba, но уже некоторое время пользуюсь vba.Скопируйте рабочие листы на основе значения столбца
У меня есть некоторый код, который расщепляет основной файл на несколько других файлов на основе отдельного столбца в Excel
Sub SplitbyValue()
Dim FromR As Range, ToR As Range, All As Range, Header As Range
Dim Wb As Workbook
Dim Ws As Worksheet
'Get the header in this sheet
Set Header = Range("D8").EntireRow
'Visit each used cell in column D, except the header
Set FromR = Range("D9")
For Each ToR In Range(FromR, Range("D" & Rows.Count).End(xlUp).Offset(1))
'Did the value change?
If FromR <> ToR Then
'Yes, get the cells between
Set All = Range(FromR, ToR.Offset(-1)).EntireRow
'Make a new file
Set Wb = Workbooks.Add(xlWBATWorksheet)
'Copy the data into there
With Wb.ActiveSheet
Header.Copy .Range("A8")
All.Copy .Range("A9")
End With
'Save it
Wb.SaveAs ThisWorkbook.Path & "\" & Format(Date, "yyyy.mm.dd") & _
" - " & FromR.Value & ".xls", xlWorkbookNormal
Wb.Close
'Remember the start of this section
Set FromR = ToR
End If
Next
End Sub
Это работает отлично подходит для основного листа, но нужно скопировать несколько вкладок, и это захватывает только один лист. Как я могу расширить его, чтобы он копировал и другие листы в этот файл?
пример: Columna Id1 Id2 Id3
Это создает три файла (ID1) (ID2) (id3), но игнорирует другие листы.
Вам нужна 'для каждого (переменная листа) в (переменная рабочей книги). Циклы цикла вокруг всей вашей вещи. Сейчас он делает только тот, который активен, когда вы запускаете макрос. – puzzlepiece87