Mình cần giúp đỡ về hàm TÌM KIẾM !

Liên hệ QC

uranus225

Thành viên mới
Tham gia
20/9/10
Bài viết
3
Được thích
0
Hiện tại mình đang cần giải quyết 1 vấn đề như thế này:
- File A: bao gồm dữ liệu gốc ( đầy đũ )
- File B: bao gồm dữ liệu gốc của File A (ko đầy đũ) và cộng thêm 1 số dữ liệu mới
Vấn đề mình cần giải quyết đó là:
- Mình muốn replace tất cả dữ liều đầy đũ của File A sang file B nhưng vẫn giữ nguyên các dữ liệu mới của file B khi vừa phát sinh !
Các dòng của file B và A rất nhiều nên ko thể làm thủ công đc !
 
Hiện tại mình đang cần giải quyết 1 vấn đề như thế này:
- File A: bao gồm dữ liệu gốc ( đầy đũ )
- File B: bao gồm dữ liệu gốc của File A (ko đầy đũ) và cộng thêm 1 số dữ liệu mới
Vấn đề mình cần giải quyết đó là:
- Mình muốn replace tất cả dữ liều đầy đũ của File A sang file B nhưng vẫn giữ nguyên các dữ liệu mới của file B khi vừa phát sinh !
Các dòng của file B và A rất nhiều nên ko thể làm thủ công đc !
Bạn up 2 file A và B lên đây.
 
Hướng làm: dùng hàm countif dò dữ liệu trong file B xem cái nào đã tồn tại trong file A.
Lọc lấy những giá trị trả về của hàm bằng 1 (đã tồn tại ở file A) và xoá đi, sau đó copy toàn bộ nội dung của file A vào file B.
Bạn nên đưa file mẫu vào để mọi người xem và giúp đỡ.
 
Mình muốn tạo file C bao gồm phần dịch tiếng Anh trong file A vì nó hoàn chỉnh thế vào chỗ file B và giữ nguyên phần tiếng Hàn mới trong file B
 

File đính kèm

Mình muốn tạo file C bao gồm phần dịch tiếng Anh trong file A vì nó hoàn chỉnh thế vào chỗ file B và giữ nguyên phần tiếng Hàn mới trong file B
Bạn sử dụng code này cho file B, nhớ file A nằm cùng thư mục với file B nghe.
Mã:
Option Explicit
Public Sub GPE()
On Error Resume Next
Dim Arr01, Arr02, Path As String
Dim N As Long, I As Long, J As Long, Arr
Dim Wb As Workbook, Sh As Worksheet
Dim Dic1 As Object
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
Set Dic1 = CreateObject("Scripting.Dictionary")
Path = ThisWorkbook.Path & "\LanguageData A.xlsm"
        Set Wb = Workbooks.Open(Path, True, True)
        Set Sh = Wb.Sheets("CashProduct_Table")
        Arr01 = Sh.Range("B2", Sh.Range("D65000").End(3)).Value
        Wb.Close False
        Set Wb = Nothing
        Arr02 = Sheets("CashProduct_Table").Range("B2", Sheets("CashProduct_Table").Range("D65000").End(3)).Value


ReDim Arr(1 To (UBound(Arr01, 1) + UBound(Arr02, 1)), 1 To 4)
For N = 1 To UBound(Arr01, 1)
    Dic1.Add Arr01(N, 1), N
    Arr(N, 1) = N
    For I = 2 To 4
        Arr(N, I) = Arr01(N, I - 1)
    Next I
Next N


For I = 1 To UBound(Arr02, 1)
 If Not Dic1.exists(Arr02(I, 1)) Then
    N = N + 1
    Dic1.Add Arr02(I, 1), N
   Arr(N, 1) = N
    For J = 2 To 4
        Arr(I, J) = Arr02(I, J - 1)
    Next J
 End If
Next I
Sheets.Add After:=ActiveSheet
Sheets("CashProduct_Table").Range("a1:d1").Copy ActiveSheet.Range("a1")
Set Dic1 = Nothing
ActiveSheet.Range("a2").Resize(N, 4) = Arr
MsgBox "Da Thuc hien xong!"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Application.ScreenUpdating = True
End Sub
 
Mình sửa lại chút không biết đúng chưa, nhờ tác giả check lại và kiểm tra.
Mã:
Option Explicit
Public Sub GPE()
On Error Resume Next
Dim Arr01, Arr02, Path As String
Dim N As Long, I As Long, J As Long, Arr
Dim Wb As Workbook, Sh As Worksheet
Dim Dic1 As Object
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.AskToUpdateLinks = False
Set Dic1 = CreateObject("Scripting.Dictionary")
Path = ThisWorkbook.Path & "\LanguageData A.xlsm"
        Set Wb = Workbooks.Open(Path, True, True)
        Set Sh = Wb.Sheets("CashProduct_Table")
        Arr01 = Sh.Range("B2", Sh.Range("D65000").End(3)).Value
        Wb.Close False
        Set Wb = Nothing
        Arr02 = Sheets("CashProduct_Table").Range("B2", Sheets("CashProduct_Table").Range("D65000").End(3)).Value
I = 0
ReDim Arr(1 To (UBound(Arr01, 1) + UBound(Arr02, 1)), 1 To 4)
For N = 1 To UBound(Arr01, 1)
  If Not Dic1.Exists(Arr01(N, 1)) Then
    I = I + 1
    Dic1.Add Arr01(N, 1), I
    Arr(I, 1) = I
    For J = 2 To 4
        Arr(I, J) = Arr01(N, J - 1)
    Next J
  End If
Next N


For N = 1 To UBound(Arr02, 1)
 If Not Dic1.Exists(Arr02(N, 1)) Then
    I = I + 1
    Dic1.Add Arr02(N, 1), I
   Arr(I, 1) = I
    For J = 2 To 4
        Arr(I, J) = Arr02(N, J - 1)
    Next J
 End If
Next N


Sheets.Add After:=ActiveSheet
Sheets("CashProduct_Table").Range("a1:d1").Copy ActiveSheet.Range("a1")
Set Dic1 = Nothing
ActiveSheet.Range("a2").Resize(I, 4) = Arr
MsgBox "Da Thuc hien xong!"
Application.DisplayAlerts = True
Application.AskToUpdateLinks = True
Application.ScreenUpdating = True
End Sub
 
Web KT

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

Back
Top Bottom