giúp Sort bằng code

Liên hệ QC

thanhtam348

Thành viên thường trực
Tham gia
9/3/07
Bài viết
288
Được thích
62
Tôi có một Sheet riêng để lập các danh sách và ẩn nó đi, khi cần tạo thêm một mã thì nhập nó bằng form nên Sort bằng tay gặp bất tiện, nếu không Sort mã nó nằm lung tung khó dò tìm quá, anh chị và bạn nào có thể giúp tôi code để Sort nó không? Xin gởi lên file DV. Cám ơn nhiều.
 

File đính kèm

Tôi có một Sheet riêng để lập các danh sách và ẩn nó đi, khi cần tạo thêm một mã thì nhập nó bằng form nên Sort bằng tay gặp bất tiện, nếu không Sort mã nó nằm lung tung khó dò tìm quá, anh chị và bạn nào có thể giúp tôi code để Sort nó không? Xin gởi lên file DV. Cám ơn nhiều.
Bạn sửa lại code như sau:
PHP:
Private Sub CommandButton1_Click() 'Ðýa DL týÌ TextBox vaÌo sôÒ
Set ws = Worksheets("DS")
iRow = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
ws.Cells(iRow, 2).Value = Me.TextBox1.Value
ws.Cells(iRow, 3).Value = Me.TextBox2.Value
ws.Cells(iRow, 4).Value = Me.TextBox3.Value
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox1.SetFocusActiveWorkbook.Worksheets("DS").Sort.SortFields.Clear   
 ActiveWorkbook.Worksheets("DS").Sort.SortFields.Add Key:=Range("B2:B65536"), _       
 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal   
 With ActiveWorkbook.Worksheets("DS").Sort       
 .SetRange Range("B1:D65536")     
   .Header = xlYes     
   .MatchCase = False        
.Orientation = xlTopToBottom      
  .SortMethod = xlPinYin     
   .Apply   
 End With
Unload Me
End Sub
 
Upvote 0
Cám ơn bạn tvxdgt !
Nhờ bạn kiểm tra lại, sao mình không nhập được, nó báo lổi chổ nầy:
Mã:
Private Sub CommandButton1_Click() 'Đưa DL từ TextBox vào sổ
Set ws = Worksheets("DS")
iRow = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
ws.Cells(iRow, 2).Value = Me.TextBox1.Value
ws.Cells(iRow, 3).Value = Me.TextBox2.Value
ws.Cells(iRow, 4).Value = Me.TextBox3.Value
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox1[COLOR=#ff0000].SetFocusActiveWorkbook[/COLOR].Worksheets("DS").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("DS").Sort.SortFields.Add Key:=Range("B2:B65536"), _
 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 With ActiveWorkbook.Worksheets("DS").Sort
 .SetRange Range("B1:D65536")
   .Header = xlYes
   .MatchCase = False
.Orientation = xlTopToBottom
  .SortMethod = xlPinYin
   .Apply
 End With
Unload Me
End Sub
 
Upvote 0
Cám ơn bạn tvxdgt !
Nhờ bạn kiểm tra lại, sao mình không nhập được, nó báo lổi chổ nầy:
[/CODE]
Code trên sai do mình chưa xuống dòng này, bạn sủa lại như sau:
PHP:
Me.TextBox1.SetFocus
ActiveWorkbook.Worksheets("DS").Sort.SortFields.Clear

 

File đính kèm

Upvote 0
Cám ơn bạn tvxdgt !
Nhờ bạn kiểm tra lại, sao mình không nhập được, nó báo lổi chổ nầy:
Mã:
Private Sub CommandButton1_Click() 'Đưa DL từ TextBox vào sổ
Set ws = Worksheets("DS")
iRow = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row
ws.Cells(iRow, 2).Value = Me.TextBox1.Value
ws.Cells(iRow, 3).Value = Me.TextBox2.Value
ws.Cells(iRow, 4).Value = Me.TextBox3.Value
Me.TextBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox1[COLOR=#ff0000].SetFocusActiveWorkbook[/COLOR].Worksheets("DS").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets("DS").Sort.SortFields.Add Key:=Range("B2:B65536"), _
 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 With ActiveWorkbook.Worksheets("DS").Sort
 .SetRange Range("B1:D65536")
   .Header = xlYes
   .MatchCase = False
.Orientation = xlTopToBottom
  .SortMethod = xlPinYin
   .Apply
 End With
Unload Me
End Sub
Code này bảo đảm được record macro từ Excel 2007 (hoặc 2010) mà ra nên nó dài và lằng nhằng quá trời luôn
Vầy là đủ rồi:
PHP:
Private Sub CommandButton1_Click()
  Dim ws As Worksheet
  Set ws = Worksheets("DS")
  iRow = ws.Cells(ws.Rows.Count, 2).End(xlUp).Row + 1
  ws.Cells(iRow, 2).Value = Me.TextBox1.Value
  ws.Cells(iRow, 3).Value = Me.TextBox2.Value
  ws.Cells(iRow, 4).Value = Me.TextBox3.Value
  Me.TextBox1.Value = ""
  Me.TextBox2.Value = ""
  Me.TextBox3.Value = ""
  Me.TextBox1.SetFocus
  ws.Range("B1:D20000").Sort ws.Range("B1"), 1, Header:=1
  Unload Me
End Sub
 
Upvote 0
Cảm ơn sư phụ Ndu đúng rồi ạ, chính xác là record rồi. ( code em cũng đang tập tành thôi)
 
Upvote 0
Cám ơn Anh ndu96081631 và bạn tvxdgt nhiều!
 
Upvote 0
Web KT

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

Đếm ngược thời gian

000
Ngày
00
Giờ
00
phút
00
giây
Back
Top Bottom