so sánh và cập nhật bảng tính


0

Xin vui lòng tôi cần một số trợ giúp với bảng tính excel ở đây. Tôi có hai bảng tính, một bản giữ các bản ghi cũ và bản còn lại giữ bản ghi hiện tại. Điều tôi muốn làm là phát triển mã vba được liên kết với nút lệnh, tìm mẫu bên dưới, để khi nhấp vào nút, các giá trị trong bản ghi cũ sẽ tự động được cập nhật dựa trên các giá trị từ bản ghi mới. Để rõ ràng, đây là một ảnh chụp nhanh của bảng tính.

Trang tính 1 chứa các bản ghi cũ, tồn tại và có thể nhìn thấy bởi hơn 100 người dùng. sheet2 chứa các bản ghi mới đang được cập nhật từ nhiều nguồn khác nhau và bất kỳ trường / coln nào cũng có thể được thay đổi bởi người dùng trường.

Trường1 trong cả hai tờ giữ trường điều khiển chính. Vì vậy, những gì tôi muốn làm là lấy từng giá trị của trường1 trong sheet2 và sau đó tìm kiếm nó trong trường1 của sheet1, nếu giá trị tồn tại, tôi muốn so sánh tất cả các bản ghi tương ứng để mọi sự khác biệt được sao chép từ sheet2 sang sheet1 cho tất cả các trường . Nếu giá trị hoàn toàn không nằm trong sheet1, tôi muốn sao chép tất cả giá trị và tất cả các bản ghi liên quan trong sheet2 sang sheet1. Lúc nào cũng vậy, tôi muốn tiếp tục cập nhật sheet1 dựa trên bản cập nhật mới trong sheet2.

Tôi hy vọng tôi làm cho mình đủ rõ ràng. Xin lưu ý rằng bảng mẫu chỉ là một phiên bản đơn giản vì tôi có 75 trường / coln và hơn 70.000 bản ghi trong các bảng.

Cảm ơn sự giúp đỡ và hỗ trợ dự đoán của bạn trong việc thực hiện điều này.

**SHEET1**
Field1  Field2  Field3  Field4
Radms Street    781772  2   76
Mapre Street    781772  31  76
Catapilar Av    781727  1   90
Aveb Park   781727  56  91

**SHEET2**
Field1  Field2  Field3  Field4
Aveb Park   781727  56  91
Radms Street    781770  2   76
Solution Way    761111  67  1
Aknyt Road  781720  91  90
Mapre Street    781772  31  76
weedred Park    781781  23  61
Raven Road  781781  76  61
Catapilar Av    781720  21  76

Vui lòng sử dụng các khối mã để định dạng đúng mẫu dữ liệu của bảng tính của bạn
tumchaaditya

1
@tumchaaditya vâng. Bạn có thể chỉnh sửa nó để định dạng là tốt.
Raystafarian

Người dùng, những gì bạn đã cố gắng cho đến nay? Bạn đã xem xét một vlookup, nhưng có quá nhiều hồ sơ cho nó để tính toán đủ nhanh? Bạn có muốn sử dụng một macro? Bạn bị mắc kẹt ở đâu?
Raystafarian

@Raystafarian: Ồ vâng tôi có thể có. Nhưng tôi đã cố gắng giáo dục OP, người rõ ràng là một người mới tham gia đăng câu hỏi đúng cách ..
tumchaaditya

Cám ơn bạn đã góp ý. Tôi hiện đang quản lý điều này với Vlookup, nhưng cái tôi cần bây giờ là Macro để quản lý quy trình vì dữ liệu sẽ tiếp tục phát triển trong vòng sáu tháng tới.
ondo

Câu trả lời:


0

VBA này sẽ hoạt động, chỉ cần điều chỉnh phạm vi cho các ô của bạn để nó không chạy vô thời hạn. Cũng điều chỉnh vòng lặp for của i để phản ánh có bao nhiêu lĩnh vực bạn có.

VBA này giả định các giá trị theo cùng một thứ tự trong cả hai trang tính và không thay thế khoảng trắng, nhưng cũng không so sánh các giá trị .

Sub comparesheets()
Application.ScreenUpdating = False
Dim c As Range
Dim strFind As String
Dim rFound As Range
Dim i As Integer

For Each c In Sheets("sheet1").Range("A:A")
strFind = c.Value

    With Sheets("Sheet2").Range("A:A")
        Set rFound = .Find(What:=strFind, _
                        After:=.Cells(.Cells.Count), _
                        LookIn:=xlValues, _
                        LookAt:=xlWhole, _
                        SearchOrder:=xlByRows, _
                        SearchDirection:=xlNext, _
                        MatchCase:=False)
        If Not rFound Is Nothing Then
            For i = 1 To 4
                If rFound.Offset(, i) <> "" Then
                    c.Offset(, i) = rFound.Offset(, i)
                End If
            Next i

        End If
    End With

Next c
Application.ScreenUpdating = True
End Sub
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.