Excel VBA - การส่งคืนรายการค่าที่ไม่พบในหนึ่งคอลัมน์


-1

ฉันต้องการให้ Excel VBA กลับมาในกล่องข้อความพร้อมข้อความรายการทั้งหมดที่อยู่ในคอลัมน์ ของแผ่นงาน Mastersheet แต่ไม่ได้อยู่ในคอลัมน์ ของแผ่นงาน DeliverySheet .

มีปัญหามากมายในการหาอันนี้นี่คือสิ่งที่ฉันได้รับ:

Private Sub CommandButton5_Click()

    Dim DeliveryName As Range
    Dim MasterName As Range
    Dim MasterSheet As Worksheet
    Dim DeliverySheet As Worksheet
    Dim valueToFind

    Set MasterSheet = Sheets("Delivery Master List Drop")
    Set DeliveryName = Sheets("For Delivery").Range(Sheets("For Delivery").Cells("A:A"))
    Set MasterName = Sheets("Delivery Master List Drop").Range(Sheets("Delivery Master List Drop").Cells("A:A"))

    For i = 3 To 3000
        valueToFind = DeliveryName("i,1")

        For Each MasterName In MasterSheet
            If Not MasterName.Cells = valueToFind Then
                MsgBox "The following name is not found in the Delivery Master List" & DeliveryName(i, 1).Value, vbExclamation
            End If
        Next MasterName
    Next i
End Sub

ฉันต้องการให้กล่องข้อความส่งคืนรายการทั้งหมดที่ไม่พบ (ซึ่งยังไม่เกิดขึ้นเป็นค่าของ ("")) ในรายการซึ่งแสดงหลังจากมาโครเสร็จสมบูรณ์ ตอนนี้ฉันแค่พยายามทำให้มันกลับมาเป็นค่าเดียว


1
แม้หลังจากการแก้ไขฉันไม่แน่ใจว่าคุณกำลังพยายามทำอะไร คำถามอยู่ที่ไหน นี่คือคำถาม & amp; เว็บไซต์และในขณะที่ฉันได้รับเรื่องตลกที่คุณกำลังมีปัญหา
YetAnotherRandomUser

นี่จะเป็นวิธีที่ง่ายขึ้นด้วยคอลัมน์ผู้ช่วย คุณใส่สูตรหนึ่งในแผ่นงานที่มีลักษณะคล้ายกัน =IF(A1='For Delivery'!A1,0,1) จากนั้นคุณสามารถดูคอลัมน์นั้นเป็น 1 และส่งออกสิ่งที่คุณต้องการสำหรับแถวนั้น คุณสามารถซ่อนคอลัมน์เพื่อให้ผู้ใช้ไม่เห็นเช็คของคุณ
HackSlash

คำตอบ:


0
Sub SearchForDeliveryItems()

    Dim wksMaster As Worksheet, wksSearch As Worksheet
    Dim rngMaster As Range, rngSearch As Range

    Set wksMaster = Sheets("Delivery Master List Drop")
    Set wksSearch = Sheets("For Delivery")

    With wksMaster
        Set rngMaster = .Range("A1:A" & .Range("A1").SpecialCells(xlCellTypeLastCell).Row)
    End With

    With wksSearch
        Set rngSearch = .Range("A1:A" & .Range("A1").SpecialCells(xlCellTypeLastCell).Row)
    End With

    With rngMaster
        For Each cll In rngSearch
            Set c = .Find(cll.Value2, LookIn:=xlValues)
            If c Is Nothing Then
                MsgBox cll.Value2 & " not found in the Delivery Master List."
            End If
        Next
    End With

End Sub

รหัสการทำงานนั้นยอดเยี่ยมอยู่เสมอ แต่ที่นี่เราต้องการคำตอบที่มีคำอธิบายบางอย่าง มองไปรอบ ๆ และดูคำตอบด้วยคะแนนโหวตสูงสุด - คุณจะเห็นว่า Imean เป็นอย่างไร
Scott
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.