В этой статье мы создадим макрос для размещения данных на нескольких листах по дням.

Необработанные данные для этой статьи состоят из данных о продажах команды за день, включая дату, имя агента и количество проданных товаров.

ArrowRawData

Мы хотим распределять данные по дням на нескольких листах. При нажатии на кнопку «Распространять данные по дням» произойдет то же самое.

ArrowOutput

Объяснение кода

Выполнить до IsEmpty (Worksheets (1) .Cells (intRowS, 1))

Цикл В приведенном выше коде цикл Do until будет повторяться до тех пор, пока не будет обнаружена пустая ячейка.

strTab = Format (Cells (intRowS, 1) .Value, «ddmmyy»)

Приведенный выше код используется для извлечения имени листа из даты.

intRowT = Worksheets (strTab) .Cells (Rows.Count, 1) .End (xlUp) .Row + 1 Приведенный выше код используется для получения номера строки последней ячейки.

Пожалуйста, введите код ниже

Sub Divide()

'Declaring variables

Dim intRowS As Integer, intRowT As Integer

Dim strTab As String

'Initializing with starting row number

intRowS = 10

'Checking whether cell in first column is empty

Do Until IsEmpty(Worksheets(1).Cells(intRowS, 1))



'Getting name of the sheet based on the date value in the first column

strTab = Format(Cells(intRowS, 1).Value, "ddmmyy")



'Getting the row number of last cell

intRowT = Worksheets(strTab).Cells(Rows.Count, 1).End(xlUp).Row + 1



'Copying data to respective sheet

Rows(intRowS).Copy Worksheets(strTab).Rows(intRowT)

intRowS = intRowS + 1

Loop

End Sub

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]