Xin trợ giúp về vòng lặp để xóa dữ liệu (1 người xem)

Liên hệ QC

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

thanchetvnt

Thành viên chính thức
Tham gia
28/7/08
Bài viết
73
Được thích
21
Mình có một mảng dũ liệu có nhiều dòng. Trong đó có một số dòng có dữ liệu ở cột A nó giống nhau (ví dụ cùng có dữ liệu là C201206)nhưng các dòng đó không liền kề nhau mà bị ngăn cách bởi các dòng dữ liệu khác.
Yêu cầu đặt ra là phải tạo một nút mà khi click chuột nó sẽ tìm và xóa tất cả các dòng thỏa mãn điều kiện có dữ liệu cột A bằng C201206. Có rất nhiều cách để làm được việc này nhưng bài tập yêu cầu mình làm theo vòng lặp For .... next. Có ai chỉ bảo giúp mình với.
Xin Cảm ơn.
 
Bạn thử cách này:

B1: Tìm dòng cuối cùng của cột 'A', gán trị này vô 1 biến khai báo từ trước;

B2: Tạo vòng lặp duyệt từ dògn cuối vừa tìm lên đầu (cột);

/(hi đang duyệt, hễ gặp trị trong ô (của cột 'A' đang duyệt bằng đúng với trị cần xoá thì ra tay xoá dòng đó đi

B3: Đi nhậu, nếu đã đúng đáp án; Nếu chưa thì hỏi tiếp những lấn cấn!
 
Upvote 0
Mình có một mảng dũ liệu có nhiều dòng. Trong đó có một số dòng có dữ liệu ở cột A nó giống nhau (ví dụ cùng có dữ liệu là C201206)nhưng các dòng đó không liền kề nhau mà bị ngăn cách bởi các dòng dữ liệu khác.
Yêu cầu đặt ra là phải tạo một nút mà khi click chuột nó sẽ tìm và xóa tất cả các dòng thỏa mãn điều kiện có dữ liệu cột A bằng C201206. Có rất nhiều cách để làm được việc này nhưng bài tập yêu cầu mình làm theo vòng lặp For .... next. Có ai chỉ bảo giúp mình với.
Xin Cảm ơn.
Thử cái này xem xoá thế nào
PHP:
Sub xoa()
Dim dic As Object
Dim dl, i, j, k, arr()
Set dic = CreateObject("scripting.dictionary")
dl = UsedRange
ReDim arr(1 To UBound(dl, 1), 1 To UBound(dl, 2))
With dic
   For i = 1 To UBound(dl)
      If dl(i, 1) <> "" Then
         If Not .exists(dl(i, 1)) Then
            k = k + 1
            .Add dl(i, 1), ""
            For j = 1 To UBound(dl, 2)
               arr(k, j) = dl(i, j)
            Next
         End If
      End If
   Next
End With
UsedRange.Clear
[a1].Resize(k, UBound(dl, 2)) = arr
End Sub
 
Upvote 0
Xí quên, bạn yêu cầu xoá có điều kiện nhưng code trên là xoá dữ liệu trùng. Thử code này nha
PHP:
Sub xoa2()
dim dk
dk = "abc"
For r = [a65536].End(3).Row To 1 Step -1
   If Cells(r, 1) = dk Then
      Cells(r, 1).EntireRow.Delete
   End If
Next
End Sub
 
Upvote 0
Web KT

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

Back
Top Bottom