Tôi đã tham gia một vài lớp lập trình ở trường đại học nhưng là một người mới hoàn thành tại excel (đây là chương trình excel đầu tiên của tôi). Sếp của tôi yêu cầu tôi tạo ra một chương trình excel để theo dõi các đơn đặt hàng bánh.
Bảng đầu tiên dành cho mục nhập trong đó tất cả thông tin cho đơn hàng được nhập và bạn đặt "x" vào cột trong ngày khách hàng muốn nhận đơn đặt hàng. Khi "x" được nhập, hàng sẽ được sao chép vào bảng ngày tương ứng cũng như bảng chính và sau đó bị xóa khỏi bảng nhập. Khi hàng được sao chép sang các trang tính khác, tất cả các hàng được sắp xếp theo tên cuối cùng (cột b). Tất cả điều đó hoạt động tốt.
Vấn đề là tôi cần phải có 2 hàng tiêu đề cho các trang tính mà hàng được sao chép vào. Hàng đầu tiên chứa tên của những chiếc bánh và thông tin thích hợp khác về ý nghĩa của cột đó đối với đơn hàng. Hàng thứ hai cần phải là tổng số sẽ tự cập nhật số lượng từng chiếc bánh riêng lẻ. Chỉ với 1 hàng tiêu đề, nó hoạt động tốt nhưng sau khi thêm vào hàng thứ hai đó, tôi dường như không thể nhận được excel để không sắp xếp hàng tiêu đề thứ hai của mình khi trang tính được điền.
Các kicker là tôi đã làm việc này 2 năm trước và ông chủ của tôi đã xóa nó. Vì vậy, tôi biết điều đó là có thể nhưng tôi chỉ không thể tìm ra nó trong khoảng thời gian này cho dù tôi có tìm kiếm bao nhiêu về vấn đề này. Bất kỳ trợ giúp / ý tưởng sẽ được đánh giá rất cao!
Ảnh chụp màn hình của tờ nhập cảnh:
Ảnh chụp màn hình thứ ba (một tờ đích):
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
, và để Header
mặc định xlNo
.