簡體   English   中英

如何基於多個條件(包括在日期范圍內擬合)如何在excel中兩行之間找到匹配項

[英]How to find at match between two rows in excel based on multiple criteria, including fitting inside a date range

這讓我不堪重負,在考慮完成此任務所需的邏輯的同時,我一直在失去兔子。 我的VBA知識幾乎不存在,所以我很抱歉不包括我到目前為止已經嘗試過的內容。

我有兩張5欄。 第一頁包含將來日期的時間表。 第二張紙包含該時間表的當天更改。 我想查找當日更改對應於原始計划中的日期,ID和顏色的實例(這意味着不必進行當日更改或計划有誤)。

這是兩張時間表表

時間表表

和Sane日單

當日表

理想情況下,我想從同一個工作日表中返回第3行和第6行,或者在F列中使用“ 1”。

我完全迷失了方向,即使向正確的方向踢也將是巨大的幫助。

謝謝。

這將在F列中放置“ 1”; 它不適用於任何錯誤值-生成類型不匹配錯誤


Option Explicit

Public Sub FindConflicts()

    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim ur1 As Variant, ur2 As Variant, r1 As Long, r2 As Long
    Dim lb1 As Long, ub1 As Long, lb2 As Long, ub2 As Long

    Set ws1 = Worksheets("Schedule")
    Set ws2 = Worksheets("Same Day")

    ur1 = ws1.UsedRange:    lb1 = LBound(ur1):  ub1 = UBound(ur1)
    ur2 = ws2.UsedRange:    lb2 = LBound(ur2):  ub2 = UBound(ur2)

    ur2 = ws2.UsedRange.Resize(, ws2.UsedRange.Columns.Count + 1)
    For r2 = lb2 + 1 To ub2
        For r1 = lb1 + 1 To ub1
            If ur2(r2, 1) = ur1(r1, 1) Then         'compare columns 1
                If ur2(r2, 2) = ur1(r1, 2) Then     'compare columns 2

                    'compare 1st date in col 4 of ws2, if between col 4 and col 5 of ws1
                    'or      2nd date in col 5 of ws2, if between col 4 and col 5 of ws1
                    If (ur2(r2, 4) >= ur1(r1, 4) And ur2(r2, 4) <= ur1(r1, 5)) Or _
                       (ur2(r2, 5) >= ur1(r1, 4) And ur2(r2, 5) <= ur1(r1, 5)) Then

                            ur2(r2, 6) = 1

                    End If
                End If
            End If
        Next
    Next
    ws2.UsedRange.Resize(, ws2.UsedRange.Columns.Count + 1) = ur2
End Sub

同一天

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM