Я новичок в VBA, поэтому буду очень признателен за любую помощь.После долгого бесполезного поиска я не могу понять, почему мой код не работает.
Чтобы объяснить проблему, у меня есть файл Excel с набором данных, отсортированных по индексу с именем Prod.Type в столбце A.
Вот пример того, что я пытаюсь сделать:
Код должен:
в цикле дляпроверьте значение всех строк в Prod.Type, и если проверенная строка равна переменной prodNum, то она копирует строку в новый файл Excel.
В противном случае она закрывает файл, увеличивает значение prodNum и повторяет цикл до полного столбца.был проверен, конечно, он будет создавать новый файл Excel для каждого produNum, который подтверждается.
В результате для prodNum = 2 должны отображаться только заголовок и строки, равные 2
Но в результате я получаю только строку заголовка, получающую вставку
Вот код, который я сделал
Sub test()
Dim wbtarget As Excel.Workbook
Dim consh As Worksheet
Dim prodNum As Long
Dim i As Long
Dim shnum As Long
Set consh = ThisWorkbook.Sheets("Sheet1")
For counter = 1 To 20
Set wbtarget = Workbooks.Add
consh.Rows(1).Copy wbtarget.Sheets(1).Range("A1")
For i = 1 To ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
If Range("A" & i).Value = prodNum Then
consh.Rows("A" & i).Copy wbtarget.Sheets(1).Range("A2")
Else
wbtarget.SaveAs "C:\Users\Anon\Desktop\Project\" & shnum & ".xlsx" 'path to save file
prodNum = prodNum + 1
shnum = shnum + 1
End If
Next
Next counter
End Sub
«Для счетчика = 1 к 20» предназначен для целей тестирования, у меня естьболее 6000 строк данных для копирования и вставки.
Заранее спасибо за любую помощь!