วนลูปผ่านสองคอลัมน์เพื่อตรวจสอบเงื่อนไข


0

ฉันต้องการวนรอบคอลัมน์ P และดูว่ามีเซลล์ที่มีหมายเลข "1" อยู่หรือไม่ในเวลาเดียวกันวนซ้ำผ่านคอลัมน์ N เพื่อดูว่ายังมีตัวเลข "1" ที่แถว / คอลัมน์เดียวกันหรือไม่หาก ไม่มี "1" ในคอลัมน์ N ในเวลาเดียวกันมีตัวเลข "1" ในคอลัมน์ P ควรมีข้อความแสดงข้อผิดพลาด

นี่คือสิ่งที่ฉันเริ่มต้น แต่ดูเหมือนจะทำงานได้ไม่ดีนัก

    For Each a In Range("p6:p40")
    If a.Value = "1" Then
        For Each c In Range("n6:n40")
            If c.Value = "" Then
            msgbox("check again")
            Else
            msgbox("check again")
            End If
        Next
    End If
Next

คำตอบ:


1

คุณสามารถเปลี่ยนวงเป็นปกติสำหรับวง:

For i = 6 To 40
    If Range("P" & i) = "1" Then
        If Range("N" & i) <> "1" Then
            MsgBox "P = 1 but N did not on row " & i
        End If
    Else

    End If
Next

คุณสามารถ msgbox ออกจากแถว excel ที่ไม่ตรงกันได้หรือไม่
user582635

@ user582635 ดูการแก้ไข
Scott Craner

2

คุณไม่จำเป็นต้องวนซ้ำอีกสำหรับคอลัมน์ N หากคุณต้องการตรวจสอบค่าในแถวเดียวกันที่คุณกำลังตรวจสอบคอลัมน์ P ลองทำตามบรรทัดนี้:

Sub test()

For Each a In Range("p6:p40")
    If a.Value = "1" Then
       If a.Offset(0, -2).Value = "" Then
           MsgBox ("blank in row " & a.Row)
       Else
           MsgBox ("not blank in row" & a.Row)
       End If
    End If
Next

End Sub

นอกจากนี้เป็นเคล็ดลับสำหรับการดีบัก: มันช่วยได้อย่างมากหากคุณมีสองข้อความที่แตกต่างกันสำหรับ IF IF สองสาขา มิฉะนั้นคุณจะรู้ได้อย่างไรว่าสาขา IF ใดเพิ่งถูกเรียก?


ฉันลองใช้รหัสด้านบนและแม้ว่าฉันจะมี "1" ในคอลัมน์ที่ฉันเปรียบเทียบ แต่ก็ยังแสดงให้ฉันเห็นข้อความว่างเปล่าในแถว ...
user582635

ทำงานได้ดีสำหรับฉัน ตรวจสอบข้อมูลของคุณ
teylyn

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