Dongka_81
Cứ làm đi !
- Tham gia
- 28/11/23
- Bài viết
- 14
- Được thích
- 4
- Giới tính
- Nam
Hi mình sửa rồi bạn
Mình có sửa lại rồi bạnBạn đang bị lỗi phần 'Tiêu đề'; Nếu được sửa lại đi bạn
Option Explicit
Sub locdulieu()
Dim lr&, i&, k&, rng, res(1 To 10000, 1 To 5), dk1 As String, dk2 As String
With Sheets("Data")
lr = .Cells(Rows.Count, "B").End(xlUp).Row
rng = .Range("B3:E" & lr).Value
End With
Sheets("Locdulieu").Activate
dk1 = IIf(Range("C1").Value = "", "*", Range("C1").Value)
dk2 = IIf(Range("C2").Value = "", "*", Range("C2").Value)
For i = 1 To UBound(rng)
If rng(i, 2) Like dk1 And rng(i, 3) Like dk2 Then
k = k + 1: res(k, 1) = k: res(k, 2) = rng(i, 1)
res(k, 3) = rng(i, 2): res(k, 4) = rng(i, 3): res(k, 5) = rng(i, 4)
End If
Next
Range("A4:E10000").ClearContents
Range("A4").Resize(k, 5).Value = res
End Sub
Đúng ý mình luôn rồiXài đỡ cái này.
Lưu ý: bạn không yêu cầu nhưng có lẽ bạn sẽ cần: 2 ô C1 và C2 có thể để trống. Nếu trống nghĩa là chọn tất cả.
Mã:Option Explicit Sub locdulieu() Dim lr&, i&, k&, rng, res(1 To 10000, 1 To 5), dk1 As String, dk2 As String With Sheets("Data") lr = .Cells(Rows.Count, "B").End(xlUp).Row rng = .Range("B3:E" & lr).Value End With Sheets("Locdulieu").Activate dk1 = IIf(Range("C1").Value = "", "*", Range("C1").Value) dk2 = IIf(Range("C2").Value = "", "*", Range("C2").Value) For i = 1 To UBound(rng) If rng(i, 2) Like dk1 And rng(i, 3) Like dk2 Then k = k + 1: res(k, 1) = k: res(k, 2) = rng(i, 1) res(k, 3) = rng(i, 2): res(k, 4) = rng(i, 3): res(k, 5) = rng(i, 4) End If Next Range("A4:E10000").ClearContents Range("A4").Resize(k, 5).Value = res End Sub