मैं एक मैक्रो वीबीए प्रोजेक्ट पर काम कर रहा हूं। मैं वर्तमान में फॉर लूप फंक्शन में फंस गया हूं। मेरे पास 5 अलग-अलग श्रेणियां हैं (रेंज ओ, पी, क्यू, एस, टी) और रेंज पी, क्यू, एस, टी के परिणाम रेंज ओ के मूल्य पर निर्भर करते हैं। कोड चलाने के बाद, मुझे यह कहते हुए एक त्रुटि मिली कि "टाइप मिसमैच "लेकिन मुझे समझ नहीं आ रहा है कि मेरी गलती कहाँ है। आशा है कि कोई मुझे एक विचार या संकल्प के साथ मदद कर सकता है। आपका बहुत बहुत धन्यवाद :)

**त्रुटि दूसरी अंतिम ElseIf लाइन से शुरू होती है

मेरा वर्तमान कोड: -

Sub TestSort()
        '
        ' TestSort Macro
        '
        Dim r As Long
        lastrow = Range("A" & Rows.Count).End(xlUp).Row
        Set rng1 = Range("O2:O" & lastrow)
        Set rng2 = Range("P2:P" & lastrow)
        Set rng3 = Range("Q2:Q" & lastrow)
        Set rng4 = Range("S2:S" & lastrow)
        Set rng5 = Range("T2:T" & lastrow)
    
        For r = 1 To lastrow
            If rng1.Cells(r) = "PCR" And rng2.Cells(r) = "ND" Then
                rng2.Cells(r) = "Coronavirus (COVID-19) Not Detected"
            ElseIf rng1.Cells(r) = "Rapid Antigen Test" And rng2.Cells(r) = "ND" Then
                rng3.Cells(r) = "Negative"
            ElseIf rng1.Cells(r) = "Rapid Antigen Test" And rng2.Cells(r) = "DET" Then
                rng3.Cells(r) = "Positive"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) M" And rng2.Cells(r) = "ND" Then
                rng4.Cells(r) = "Negative" And rng5.Cells(r) = "Positive"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) M" And rng2.Cells(r) = "DET" Then
                rng4.Cells(r) = "Positive" And rng5.Cells(r) = "Negative"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) G" And rng2.Cells(r) = "ND" Then
                rng5.Cells(r) = "Negative" And rng4.Cells(r) = "Positive"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) G" And rng2.Cells(r) = "DET" Then
                rng5.Cells(r) = "Positive" And rng4.Cells(r) = "Negative"
            End If
        Next
End Sub
1
Khirxn 2 फरवरी 2021, 12:38
1
कोड में त्रुटि फ़्लैगिंग कहां है? यह भी याद रखें कि रेंज प्रॉपर्टी Value - जो बेहतर है, यानी rng1.Cells(r).Value = "PCR" सेट करें। साथ ही अपने मान सेट करते समय इसे कोड की दो पंक्तियों में तोड़ दें।
 – 
Dean
2 फरवरी 2021, 12:49
हाय डीन, क्षमा करें, मैंने कोड में त्रुटि बताने के लिए अपनी पोस्ट संपादित की है। हां, मैंने रेंज प्रॉपर्टी 'वैल्यू' सेट करने की कोशिश की है और यह सही तरीके से भी काम कर रहा है। यह मेरे लिए एक नया सबक है! टीक्यूवीएम
 – 
Khirxn
2 फरवरी 2021, 13:29

1 उत्तर

सबसे बढ़िया उत्तर

मुझे पूरा यकीन है कि समस्या शीट को मान निर्दिष्ट करने में And है।

Sub TestSort()
        '
        ' TestSort Macro
        '
        Dim r As Long
        lastrow = Range("A" & Rows.Count).End(xlUp).Row
        Set rng1 = Range("O2:O" & lastrow)
        Set rng2 = Range("P2:P" & lastrow)
        Set rng3 = Range("Q2:Q" & lastrow)
        Set rng4 = Range("S2:S" & lastrow)
        Set rng5 = Range("T2:T" & lastrow)
    
        For r = 1 To lastrow
            If rng1.Cells(r) = "PCR" And rng2.Cells(r) = "ND" Then
                rng2.Cells(r) = "Coronavirus (COVID-19) Not Detected"
            ElseIf rng1.Cells(r) = "Rapid Antigen Test" And rng2.Cells(r) = "ND" Then
                rng3.Cells(r) = "Negative"
            ElseIf rng1.Cells(r) = "Rapid Antigen Test" And rng2.Cells(r) = "DET" Then
                rng3.Cells(r) = "Positive"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) M" And rng2.Cells(r) = "ND" Then
                rng4.Cells(r) = "Negative"
                rng5.Cells(r) = "Positive"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) M" And rng2.Cells(r) = "DET" Then
                rng4.Cells(r) = "Positive" 
                rng5.Cells(r) = "Negative"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) G" And rng2.Cells(r) = "ND" Then
                rng5.Cells(r) = "Negative"
                rng4.Cells(r) = "Positive"
            ElseIf rng1.Cells(r) = "Rapid Antibodi Test (Separate) G" And rng2.Cells(r) = "DET" Then
                rng5.Cells(r) = "Positive"
                rng4.Cells(r) = "Negative"
            End If
        Next
End Sub
0
Andreas 2 फरवरी 2021, 12:58