Giúp tạo Macro

D

dang uy

Guest
6/12/16
13
0
1
33
Chào cộng đồng Webketoan
các Pro giúp e tạo macro nhé
em có file đính kèm bên dưới:
gồm 3 sheet:
- sheet định nghĩa + sheet 1 + sheet 2
em muốn tạo một marco tìm kiếm điều kiện từ sheet định nghĩa sang sheet 1 + 2, và xóa dữ liệu không tìm thấy
vd: điều kiện sheet định nghĩa là team 01.Hai Phong, thì sang sheet 1 + 2 chỉ giữ lại hàng có tên 01. Hai Phòng và xóa bỏ các dữ liệu còn hàng còn lại..
Mong các Pro giúp em
Tks!
 

Đính kèm

  • Data.xlsx
    11.6 KB · Lượt xem: 32
Khóa học Quản trị dòng tiền
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
Chào cộng đồng Webketoan
các Pro giúp e tạo macro nhé
em có file đính kèm bên dưới:
gồm 3 sheet:
- sheet định nghĩa + sheet 1 + sheet 2
em muốn tạo một marco tìm kiếm điều kiện từ sheet định nghĩa sang sheet 1 + 2, và xóa dữ liệu không tìm thấy
vd: điều kiện sheet định nghĩa là team 01.Hai Phong, thì sang sheet 1 + 2 chỉ giữ lại hàng có tên 01. Hai Phòng và xóa bỏ các dữ liệu còn hàng còn lại..
Mong các Pro giúp em
Tks!
Tức là những gì được khai báo trong bảng định nghĩa thì bên Sheet1 , 2 sẽ được dữ lại hàng chứa giá trị đó. Còn lại sẽ xóa đúng ko?
 
D

dang uy

Guest
6/12/16
13
0
1
33
đúng rồi anh, anh giúp e nhé
 
D

dang uy

Guest
6/12/16
13
0
1
33
Tức là những gì được khai báo trong bảng định nghĩa thì bên Sheet1 , 2 sẽ được dữ lại hàng chứa giá trị đó. Còn lại sẽ xóa đúng ko?
đúng rồi anh, anh giúp em nhé
 
D

dang uy

Guest
6/12/16
13
0
1
33
có ai giúp không ạ
 
K

Kin7

Cao cấp
8/5/15
5,194
987
113
cái này dùng vòng lặp tìm điều kiện thôi, nhưng mình lại không rành về code, nên mới hỏi pro ak
Bạn còn biết dùng vòng lặp điều kiện.
Mình còn chẳng hiểu vòng lặp đk là gì.
 
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
cái này dùng vòng lặp tìm điều kiện thôi, nhưng mình lại không rành về code, nên mới hỏi pro ak
Cấu trúc của bạn chưa chuẩn lắm ở chỗ bảng định nghĩa thì Ha Noi có dấu cách mà trong sheet 1, 2 có dấu cách
PHP:
Sub DelNotLookup()
Dim i As Long, j As Long
Dim a1() As String, a2() As String
Dim ShDefine As Worksheet, Sh1 As Worksheet, Sh2 As Worksheet
Set ShDefine = ThisWorkbook.Sheets("DinhNghia")
Set Sh1 = ThisWorkbook.Sheets("Sheet 1")
Set Sh2 = ThisWorkbook.Sheets("Sheet2")
Dim dDefine As Long, d1 As Long, d2 As Long, F As Long, p1 As Long, p2 As Long
dDefine = ShDefine.Range("A" & ShDefine.Rows.Count).End(xlUp).Row
d1 = Sh1.Range("C" & Sh1.Rows.Count).End(xlUp).Row
d2 = Sh2.Range("C" & Sh2.Rows.Count).End(xlUp).Row
For i = 2 To d1
    F = 0
    For j = 2 To dDefine
        If Sh1.Cells(i, 3).Value = ShDefine.Cells(j, 1).Value Then
            F = 1
            Exit For
        End If
    Next j
    If F = 0 Then
        p1 = p1 + 1
         ReDim Preserve a1(p1)
         a1(p1) = Sh1.Cells(i, 3).Address
    End If
Next i
For i = 1 To p1
    Sh1.Range(a1(i)).EntireRow.Delete
Next i
For i = 2 To d2
    F = 0
    For j = 2 To dDefine
        If Sh2.Cells(i, 3).Value = ShDefine.Cells(j, 1).Value Then
            F = 1
            Exit For
        End If
    Next j
    If F = 0 Then
        p2 = p2 + 1
         ReDim Preserve a2(p2)
         a2(p2) = Sh2.Cells(i, 3).Address
    End If
Next i
For i = 1 To p2
    Sh1.Range(a2(i)).EntireRow.Delete
Next i
End Sub
 
D

dang uy

Guest
6/12/16
13
0
1
33
Cấu trúc của bạn chưa chuẩn lắm ở chỗ bảng định nghĩa thì Ha Noi có dấu cách mà trong sheet 1, 2 có dấu cách
PHP:
Sub DelNotLookup()
Dim i As Long, j As Long
Dim a1() As String, a2() As String
Dim ShDefine As Worksheet, Sh1 As Worksheet, Sh2 As Worksheet
Set ShDefine = ThisWorkbook.Sheets("DinhNghia")
Set Sh1 = ThisWorkbook.Sheets("Sheet 1")
Set Sh2 = ThisWorkbook.Sheets("Sheet2")
Dim dDefine As Long, d1 As Long, d2 As Long, F As Long, p1 As Long, p2 As Long
dDefine = ShDefine.Range("A" & ShDefine.Rows.Count).End(xlUp).Row
d1 = Sh1.Range("C" & Sh1.Rows.Count).End(xlUp).Row
d2 = Sh2.Range("C" & Sh2.Rows.Count).End(xlUp).Row
For i = 2 To d1
    F = 0
    For j = 2 To dDefine
        If Sh1.Cells(i, 3).Value = ShDefine.Cells(j, 1).Value Then
            F = 1
            Exit For
        End If
    Next j
    If F = 0 Then
        p1 = p1 + 1
         ReDim Preserve a1(p1)
         a1(p1) = Sh1.Cells(i, 3).Address
    End If
Next i
For i = 1 To p1
    Sh1.Range(a1(i)).EntireRow.Delete
Next i
For i = 2 To d2
    F = 0
    For j = 2 To dDefine
        If Sh2.Cells(i, 3).Value = ShDefine.Cells(j, 1).Value Then
            F = 1
            Exit For
        End If
    Next j
    If F = 0 Then
        p2 = p2 + 1
         ReDim Preserve a2(p2)
         a2(p2) = Sh2.Cells(i, 3).Address
    End If
Next i
For i = 1 To p2
    Sh1.Range(a2(i)).EntireRow.Delete
Next i
End Sub


em chạy ra nó bị lỗi anh ơi
upload_2016-12-6_15-18-53.png
 
D

dang uy

Guest
6/12/16
13
0
1
33
Tks anh! thinhvd nhiều nha
 

Xem nhiều