Nhờ sửa lỗi đoạn code trong Form nhập liệu!

Liên hệ QC

MinhCong

Thành viên gắn bó
Tham gia
28/5/09
Bài viết
1,645
Được thích
1,806
Nghề nghiệp
Xây dựng Cầu đường
Tôi có chép đoạn code của Anh NDU, về chỉnh sửa lại cho phù hợp với công việc, tuy nhiên bị lỗi khi đánh vào ô tìm theo tên thì bị lỗi, mong các Anh, Chị xem và sửa giúp!
Mã:
Private Sub TextBox1_Change()
  Dim Clls As Range, Temp As Variant, i As Long
  Application.ScreenUpdating = False
  ListBox1.RowSource = ""
  With Sheets("Capnhat").Range(Sheets("Capnhat").[B1], Sheets("Capnhat").[D65536].End(xlUp))
    Temp = .Value
    [COLOR=Blue].Sort .Cells(3, 3), 3, Header:=xlGuess[/COLOR]
    .AutoFilter [COLOR=Blue]3[/COLOR], IIf(Len(Trim(TextBox1.Value)) = 0, "=", TextBox1.Value & "*")
    ListBox1.Clear
    For Each Clls In .Offset(1).Resize(, 1).SpecialCells(12)
      ListBox1.AddItem (Clls)
      ListBox1.List(i, 1) = Clls(, 2)
      i = i + 1
    Next
    .AutoFilter
    .Value = Temp
  End With
  Application.ScreenUpdating = True
End Sub
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi có chép đoạn code của Anh NDU, về chỉnh sửa lại cho phù hợp với công việc, tuy nhiên bị lỗi khi đánh vào ô tìm theo tên thì bị lỗi, mong các Anh, Chị xem và sửa giúp!
Mã:
Private Sub TextBox1_Change()
  Dim Clls As Range, Temp As Variant, i As Long
  Application.ScreenUpdating = False
  ListBox1.RowSource = ""
  With Sheets("Capnhat").Range(Sheets("Capnhat").[B1], Sheets("Capnhat").[D65536].End(xlUp))
    Temp = .Value
    [COLOR=Blue].Sort .Cells(3, 3), 3, Header:=xlGuess[/COLOR]
    .AutoFilter [COLOR=Blue]3[/COLOR], IIf(Len(Trim(TextBox1.Value)) = 0, "=", TextBox1.Value & "*")
    ListBox1.Clear
    For Each Clls In .Offset(1).Resize(, 1).SpecialCells(12)
      ListBox1.AddItem (Clls)
      ListBox1.List(i, 1) = Clls(, 2)
      i = i + 1
    Next
    .AutoFilter
    .Value = Temp
  End With
  Application.ScreenUpdating = True
End Sub
Code thì đúng nhưng với dữ liệu của bạn thì... sai ---> Dữ liệu bằng đầu từ dòng 3 cơ mà
Vì thế phải sửa đoạn:
With Sheets("Capnhat").Range(Sheets("Capnhat").[B1], Sheets("Capnhat").[D65536].End(xlUp))
thành:
With Sheets("Capnhat").Range(Sheets("Capnhat").[B3], Sheets("Capnhat").[D65536].End(xlUp))
------------
Sửa đoạn:
.Sort .Cells(3, 3), 3, Header:=xlGuess ---> Chẳng hiểu số 3 màu xanh này là cái gì
thành:
.Sort .Cells(2, 2), 1, Header:=xlGuess ---> (sort cột 2 (cột C) của vùng dữ liệu cơ mà)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Em đã làm được rồi. Anh cho Em hỏi câu nữa nhé!
Tại sheet Nhatky, khi ta nhập dữ liệu vào (VD: Nhập liệu vào ô D6) thì tự động bên ô B6 sẽ hiện kết quả của hàm COUNTIF($D$5:D6,D6)&C6 và bên ô K6 hiện kết quả của hàm IF(I6=0,"",D6&H6), (tương tự cho những ô nhập liệu bên dưới) thì trong code ta viết hàm như thế nào?
Mã:
Cells(ActiveCell.Row, 2) = "=COUNTIF(R5C4:RC[2],RC[2])&RC[1]"
Cells(ActiveCell.Row, 11) = "=RC[-7]&RC[-3]"
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom