मेरे पास दो शीट हैं, रीज़न और लास्टवीक

मैं दोनों शीट के कॉलम बी की तुलना करना चाहता हूं, यदि उनके पास एक ही आईडी है, तो मैं पिछले सप्ताह के सभी विवरण कॉलम 33 से 50 तक के कारण पत्रक में प्राप्त करना चाहता हूं।

मैं आउटपुट प्राप्त करने में सक्षम हूं, समस्या यह है, उदाहरण के लिए। यदि मेरे पास पिछले सप्ताह की शीट के कॉलम 34 में डेटा है, तो इसे कारण पत्रक के कॉलम 33 में दर्ज किया जा रहा है।

क्या कोई मदद कर सकता है, मैं इसे कैसे दूर कर सकता हूं।

Sub lookupUpdate()
Dim BWlRow As Long, CWlRow As Long, i As Long
Dim sformula As String
Dim wsBW As Worksheet, wsCW As Worksheet
Set wsBW = Sheets("Reason"): Set wsCW = Sheets("Lastweek")
BWlRow = wsBW.Cells(wsBW.Rows.count, "A").End(xlUp).Row
CWlRow = wsCW.Cells(wsCW.Rows.count, "A").End(xlUp).Row
For i = 33 To 50 '~~> Col AD to AU
sformula = "=IF(IFERROR(VLOOKUP($B2,Lastweek!$B$2:$AZ" & _
CWlRow & _
"," & _
i & _
",FALSE),""0"")=0,"" "",IFERROR(VLOOKUP($B2,Lastweek!$B$2:$AZ" & _
CWlRow & _
"," & _
i & _
",FALSE),""""))"
With wsBW
With .Range(.Cells(2, i), .Cells(BWlRow, i))
.Formula = sformula
.Value = .Value
End With
End With
Next i
End Sub
1
Jenny 31 अगस्त 2017, 14:10

1 उत्तर

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

कॉलम संख्या 33 के अपने उदाहरण का उपयोग करते हुए, आपका Vlookup LastWeek शीट में सेल B2 से शुरू होने वाली श्रेणी को देख रहा है। इस रेंज का 33वां कॉलम शीट का कॉलम एएच होगा। जब आप अपना फॉर्मूला आउटपुट कर रहे होते हैं तो आप रीज़न शीट के iवें कॉलम में आउटपुट कर रहे होते हैं। जहां मैं 33 वर्ष का हूं, यह कॉलम एजी है। यदि आप कॉलम AH (कॉलम नंबर 34, या i + 1) में आउटपुट करना चाहते हैं। आप बस इस लाइन को बदलकर ऐसा कर सकते हैं:

With .Range(.Cells(2, i + 1), .Cells(BWlRow, i + 1))
2
Dave 31 अगस्त 2017, 14:28