Я взял несколько уроков программирования в колледже, но я новичок в Excel (это моя самая первая программа Excel). Мой начальник попросил меня создать программу Excel для отслеживания заказов на пироги.
Первый лист предназначен для ввода, где вводится вся информация для заказа, и вы ставите «х» в столбце дня, когда клиент хочет забрать заказ. После ввода «x» строка копируется на соответствующий лист дня, а также на основной лист, а затем удаляется с листа ввода. Поскольку строка копируется на другие листы, все строки сортируются по фамилии (столбец b). Все это прекрасно работает.
Проблема в том, что мне нужно иметь 2 строки заголовков для листов, на которые эта строка копируется. Первая строка содержит названия пирогов и другую соответствующую информацию о том, что этот столбец означает для заказа. Во втором ряду должна быть сумма, которая будет обновлять себя для каждого отдельного пирога. Имея только 1 строку заголовка, она работает нормально, но после добавления во вторую строку я не могу добиться превосходства в том, чтобы не сортировать мою вторую строку заголовка при заполнении листа.
Кикер, у меня это работало 2 года назад, и мой босс удалил его. Так что я знаю, что это возможно, но я просто не могу понять это в этот раз, независимо от того, сколько я занимаюсь поиском по этому вопросу. Любая помощь / идеи будут с благодарностью!
Снимок экрана:
Снимок экрана вторника (лист назначения):
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Column = 21 Then
If Target.Value = "x" Then
Target.EntireRow.Copy Destination:=Sheets("Tuesday"). _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Target.EntireRow.Copy Destination:=Sheets("Master"). _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Target.EntireRow.Delete
End If
ElseIf Target.Column = 22 Then
If Target.Value = "x" Then
Target.EntireRow.Copy Destination:=Sheets("Wednesday"). _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Target.EntireRow.Copy Destination:=Sheets("Master"). _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Target.EntireRow.Delete
End If
ElseIf Target.Column = 23 Then
If Target.Value = "x" Then
Target.EntireRow.Copy Destination:=Sheets("Thursday"). _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Target.EntireRow.Copy Destination:=Sheets("Master"). _
Range("A" & Rows.Count).End(xlUp).Offset(1)
Target.EntireRow.Delete
End If
End If
Application.EnableEvents = True
With Sheets("Tuesday")
.Columns("A:W").Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes
End With
With Sheets("Wednesday")
.Columns("A:W").Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes
End With
With Sheets("Thursday")
.Columns("A:W").Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes
End With
With Sheets("Master")
.Columns("A:W").Sort Key1:=.Range("B1"), Order1:=xlAscending, Header:=xlYes
End With
End Sub
источник
Columns("A:W").Sort
кRange("A3:W999").Sort
, и позволяя поHeader
умолчанию вxlNo
.Ответы:
Как сказал Скотт, не используйте
A:W
. Попробуйте больше так:источник