Xóa các dòng trống trong List

Liên hệ QC

Võ Thiếu Gia

Thành viên hoạt động
Tham gia
19/7/08
Bài viết
105
Được thích
54
Cho mình xin code khi xóa dữ liệu trong list sẽ tự động rút ngắn, chỉ chừa lại 2 Row đầu tiên, sau row tiêu đề

File đính kèm
 

File đính kèm

code đây!
Mã:
Sub DeletedROW()
For i = 9 To  Range("C8").End(xlDown).Row
        Rows(9).Delete Shift:=xlUp
Next
End Sub
 
Upvote 0
Sao không đơn giản là:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 3 Then
    Range("C6:C1000").SpecialCells(4).EntireRow.Delete
  End If
End Sub
 
Upvote 0
Sao không đơn giản là:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 3 Then
    Range("C6:C1000").SpecialCells(4).EntireRow.Delete
  End If
End Sub

Nhưng vẫn không làm được NDU ơi, cái mình xóa là dùng List. Nó có thể dài ra hơn nữa. NDU xem thử File này của mình ra sao nha.
 

File đính kèm

Upvote 0
Mình ko hiểu về VBA mấy, nhưng bạn thử thay ("C6:C1000") bằng số dòng mà bạn muốn dài hơn xem sao?
 
Upvote 0
vậy thử cái này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Column = 3 Then
     ListObjects("List1").Resize Range("B6:G" & [C6].End(xlDown).Row)
  End If
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
vậy thử cái này xem:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Column = 3 Then
     ListObjects("List1").Resize Range("B6:G" & [C6].End(xlDown).Row)
  End If
End Sub

Cái code này trong Form này thì nó nhảy bính thường.
Nhưng ở cái form của mình. Không biết sao nó đứng im.
Giúp mình giải quyết cái form này với
Thanks
 

File đính kèm

Upvote 0
Cái code này trong Form này thì nó nhảy bính thường.
Nhưng ở cái form của mình. Không biết sao nó đứng im.
Giúp mình giải quyết cái form này với
Thanks
Đương nhiên im re vì nó đâu có giống với file đầu bạn đưa lên
Chẳng hạn có thể sửa như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Column = 3 Then
     ListObjects("List1").Resize Range("A9:H" & [C9].End(xlDown).Row + 1)
  End If
End Sub
Bạn chú ý vị trí dòng cột, sao cho phù hợp với code là được rồi
 
Upvote 0
Đương nhiên im re vì nó đâu có giống với file đầu bạn đưa lên
Chẳng hạn có thể sửa như sau:
PHP:
Private Sub Worksheet_Change(ByVal Target As Range)
  On Error Resume Next
  If Target.Column = 3 Then
     ListObjects("List1").Resize Range("A9:H" & [C9].End(xlDown).Row + 1)
  End If
End Sub
Bạn chú ý vị trí dòng cột, sao cho phù hợp với code là được rồi

Mình đã sửa lại. Mình còn thêm cã With vào nữa. Không biết sao vẫn cứ đứng im.
Coi lại dùm mình với. Nếu được bạn viết luôn vô đó dùm mình với.

Với lại mình không hiều ở đoạn này If Target.Column = 3 Then [C9].End(xlDown).Row + 1. Giải thích dùm mình khúc này với. Nói thật, mình mới tập tểnh bước vào thế giới VBA
Thanks
 

File đính kèm

Upvote 0
Không cần With.. End With đâu... vì đây là sự kiện WorkSheet_Change, code được đặt ngay trong sheet, vậy đâu cần gọi tên sheet ra chứ
Target: nghĩa là cell mà bạn đang chọn để làm thứ gì đó (Nôm na là ActiveCell)
If Target.Column = 3 then ... : Nếu ta đụng chạm, thay đổi gì đó trong cột 3 (tức cột C) thì...
[C9].End(xlDown): Tương đương với việc bạn đặt con trỏ tại C9, bấm Ctrl + mũi tên xuống (mục đích là xem dòng cuối cùng có dử liệu là dòng thứ mấy)
Với file của bạn, hãy xóa With.. End With... sau đó thử gõ gì đó vào cột C... rồi xóa chúng xem thế nào nhé
 
Upvote 0
Không cần With.. End With đâu... vì đây là sự kiện WorkSheet_Change, code được đặt ngay trong sheet, vậy đâu cần gọi tên sheet ra chứ
Target: nghĩa là cell mà bạn đang chọn để làm thứ gì đó (Nôm na là ActiveCell)
If Target.Column = 3 then ... : Nếu ta đụng chạm, thay đổi gì đó trong cột 3 (tức cột C) thì...
[C9].End(xlDown): Tương đương với việc bạn đặt con trỏ tại C9, bấm Ctrl + mũi tên xuống (mục đích là xem dòng cuối cùng có dử liệu là dòng thứ mấy)
Với file của bạn, hãy xóa With.. End With... sau đó thử gõ gì đó vào cột C... rồi xóa chúng xem thế nào nhé

Ở đây, mình không đụng chạm gì đến Cột C. Mà chỉ cột B thôi. Bởi chỉ nhập Mã SP. Mình đã sửa code lại như sau:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
ListObjects("List1").Resize Range("A9:H" & [B10].End(xlDown).Row + 1)
End If
End Sub


Tuy nhiên lại xãy ra vấn đề: Là khi nó rút ngắn lên. Các dòng Tổng Cộng - Chiết Khấu Nhóm, Chiết Khấu nhóm, Thanh Toán không rút lên theo

Như trong File mình làm. Bạn xem thử
 

File đính kèm

Upvote 0
Ở đây, mình không đụng chạm gì đến Cột C. Mà chỉ cột B thôi. Bởi chỉ nhập Mã SP. Mình đã sửa code lại như sau:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 Then
ListObjects("List1").Resize Range("A9:H" & [B10].End(xlDown).Row + 1)
End If
End Sub

Tuy nhiên lại xãy ra vấn đề: Là khi nó rút ngắn lên. Các dòng Tổng Cộng - Chiết Khấu Nhóm, Chiết Khấu nhóm, Thanh Toán không rút lên theo

Như trong File mình làm. Bạn xem thử[/quot

Các Bác ơi, giúp mình chổ này với. Bí quá//////
 
Upvote 0
Web KT

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

Back
Top Bottom