Tự Động Tạo Thêm Dòng Khi Nhập Dữ Liệu (1 người xem)

Liên hệ QC

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

0905744404

Thành viên thường trực
Tham gia
26/10/10
Bài viết
333
Được thích
107
Nghề nghiệp
Trước là : Thủ Kho - còn giờ thì :"Tài Xế"
Em có gửi file đính kèm mong các anh chị giúp đơ em vơi
Có thể viết Code VBA cũng được
 

File đính kèm

Bạn xem thử file đúng ý bạn không nhé
Cám ơn bạn!
Đúng la như vậy rồi nhưng VBA bạn viết đang bị lỗi gì đó
Mình chạy rồi nhưng báo lỗi.
Nhờ bạn sửa lại cho chạy được luôn nha
Tại mình không biết gì VBA hết
 
Upvote 0
Cám ơn bạn!
Đúng la như vậy rồi nhưng VBA bạn viết đang bị lỗi gì đó
Mình chạy rồi nhưng báo lỗi.
Nhờ bạn sửa lại cho chạy được luôn nha
Tại mình không biết gì VBA hết
Bạn sửa thêm dòng vào đoạn code của anh @viehoai xem sao nhé:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error Resume Next
    If Target.Column <> 3 Or Target.Count > 1 Or Target.Value = "" Then Exit Sub
    If Target.Offset(1).Value = "" Then
      Target.Offset(1).EntireRow.Insert
    End If
End Sub
 
Upvote 0

File đính kèm

Upvote 0
Theo mình, dùng sự kiện Worksheet_Change nên xem xét dùng kèm câu lệnh Application.EnableEvents. Lỗi xảy ra do lệnh chèn dòng kích hoạt sự kiện Worksheet_Change một lần nữa. Lúc bấy giờ Target trở thành 1 dòng nên VBA không thể tính được Target.value.
 
Upvote 0
Theo mình, dùng sự kiện Worksheet_Change nên xem xét dùng kèm câu lệnh Application.EnableEvents. Lỗi xảy ra do lệnh chèn dòng kích hoạt sự kiện Worksheet_Change một lần nữa. Lúc bấy giờ Target trở thành 1 dòng nên VBA không thể tính được Target.value.
Thầy ơi, nhưng em có câu lệnh If Target.Count > 1 Then Exit Sub rồi mà Thầy (có thể Thầy giải thích rõ hơn tí nữa không?)
 
Upvote 0
If Target.Column <> 3 Or Target.Count > 1 Or Target.Value = "" Then Exit Sub
Câu lệnh trên có đến 3 điều kiện. Khi sự kiện Worksheet_Change bị kích hoạt không mong muốn do chèn dòng, câu lệnh này được thực thi một lần nữa. Lúc bấy giờ Target không còn là 1 ô mà trở thành 1 dòng. Target.column =1 vì VBA lấy trị số cột đầu tiên,Target.count = 256 vì theo số cột trong excel 2003, còn Target.value =???? tính không ra, nên xảy ra lỗi. Lệnh Exit sub không có tác dụng gì vì nó xảy ra sau lỗi.
Bổ sung thêm: Khi target là 1 vùng thì câu lệnh Target.value ="" sẽ mắc lỗi Type mismatch.
 
Lần chỉnh sửa cuối:
Upvote 0
code này minh test rồi hay đấy. nhưng nếu tự động ẩn dòng khi gia trị là không thì tốt hơn.vì nó cứ thêm dòng hoài mệt quá (nên để mặc đinh là 3-4 dòng thôi) khi nhập đến dòng thứ 4 thì lại thêm một dòng...
 
Upvote 0
code này minh test rồi hay đấy. nhưng nếu tự động ẩn dòng khi gia trị là không thì tốt hơn.vì nó cứ thêm dòng hoài mệt quá (nên để mặc đinh là 3-4 dòng thôi) khi nhập đến dòng thứ 4 thì lại thêm một dòng...

Uhm, mình nghĩ ẩn dòng không giá trị cũng hay, nếu bạn có 2 đề mục (A, B chẳng hạn). Đề mục A luôn cách đề mục B là 3 dòng. Vậy mình để sẵn 50 dòng chẳng hạn, cuối sự kiện, khi dòng có dữ liệu thì hiện, không thì ẩn có khi nhanh hơn
 
Upvote 0
Bác Hai Lúa Miền Tây có thể hướng dẫn em tạo list kiểu bác được không ạ? em tìm tài liệu để xem mà không thấy.
 
Upvote 0
Bác Hai Lúa Miền Tây có thể hướng dẫn em tạo list kiểu bác được không ạ? em tìm tài liệu để xem mà không thấy.
Dùng bài anh Hai Lúa Miền Tây để hướng dẫn
I/ Bỏ List: Chọn 1 cell bất kỳ trong List: VD : cell B4
Chọn Data/List/Convert to Range
II/Chọn List
Chọn vùng A4:G6 (tô đen)
Chọn Menu Data/List/Create list
Trong Khung Create list chọn My List has headers -->OK
 
Upvote 0
TK Hong.Van, có vẻ hay nhỉ, nhưng mà sao file e tạo list xong, và nhấp vào vùng list nó dựt dựt màn hình khó chịu thiệt. Có cách nào khắc phục vấn đề này ko nhỉ.
 
Upvote 0

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

Back
Top Bottom