Xin giúp cách sort tự động bằng vba (1 người xem)

  • Thread starter Thread starter db2tno2
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

db2tno2

Thành viên mới
Tham gia
1/3/12
Bài viết
8
Được thích
2
[FONT=Roboto, arial, sans-serif]Mình có bảng tính như file đính kèm
Giờ mục đích của mình là sắp xếp khách hàng theo từng loại KH A,B,C,D,E
Dưới mỗi khách hàng của cuối cùng mình insert thêm 1 dòng để tính tổng của loại đó
Tiếp theo đối với mỗi bảng tính của từng loại khách hàng mình lại sort theo mã cán bộ quản lý, địa chỉ,... để dễ quản lý
Nếu bảng tính của mình cố định số dòng số cột như thế này thì sẽ đơn giản nhưng bảng báo cáo của mình thay đổi mỗi ngày. Số lượng khách hàng, loại khách hàng, nhân viên tư vẫn đều có thể thay đổi
Vậy cho mình hỏi mình cần phải xây dựng công thức như thế nào để thực hiên tự động công việc trên
Thank các bạn rất nhiều
[/FONT]
 

File đính kèm

chào bạn.
code của bạn đây.
///
Sub Macro1()
'
' Macro1 Macro
'
' Keyboard Shortcut: Ctrl+e
'
j = 6
k = 6
Do While Range("b" & j) <> ""
j = j + 1
Loop
j = j - 1
Range("B6").Select
ActiveWorkbook.Worksheets("file gc").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("file gc").Sort.SortFields.Add Key:=Range("E6:E" & j), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("file gc").Sort
.SetRange Range("B5:F" & j)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
k = 6
l = 6
Do While Range("b" & k) <> ""
If Range("e" & k) = Range("e" & k + 1) Then
k = k + 1
Else:
Rows(k + 1).Select
Selection.Insert Shift:=xlDown
Debug.Print (k)
Debug.Print (l)
Range("f" & k + 1) = "=sum(R[" & l - k - 1 & "]c:R[-1]c)"
Range("f" & k + 1).Select
Selection.Font.Bold = True
k = k + 2
l = k
End If
Loop
Cells.Select
Cells.EntireColumn.AutoFit
End Sub

//////
nếu có gì chưa ok thì bạn comment cho mình nhé!
 
Web KT

Bài viết mới nhất

Back
Top Bottom