For Each headerRange In tblStueckpreis.Range.Rows(1) If tblStueckpreis.DataBodyRange.Cells.Value Like "*Staffel*" Then numbersStaffel = numbersStaffel + 1 End If Next

मैं अपनी तालिका के शीर्षलेख के माध्यम से लूप करना चाहता था और जांचना चाहता था कि हेडर "स्टाफ़ल" कहता है। मैंने बहुत सी चीजों की कोशिश की है और यह काम नहीं कर रहा है... मैं क्या गलत कर रहा हूँ? कृपया मेरी मदद करो।

0
Abusador 16 अप्रैल 2020, 13:04

1 उत्तर

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

आपको लूप करने की आवश्यकता नहीं है, बस WorksheetFunction.CountIf() का उपयोग करें :

numbersStaffel = WorksheetFunction.CountIf(tblStueckpreis.Range.Rows(1), "*Staffel*")

क्या आपको लूपिंग के साथ रहना चाहिए, फिर उपयोग करें:

For Each headerRange In tblStueckpreis.Range.Rows(1).Cells
    If headerRange.Value Like "*Staffel*" Then numbersStaffel = numbersStaffel + 1
Next

जबकि आप सूचित करना चाहते हैं कि आपके कोड में दो समस्याएं थीं:

1 आपने For Each headerRange In tblStueckpreis.Range.Rows(1) जैसा लूप सेट किया है, लेकिन इसके अंदर कभी भी इसके इटरेटर वैरिएबल (यानी: headerRange) का उपयोग नहीं किया

2 tblStueckpreis.DataBodyRange.Cells.Value, tblStueckpreis तालिका के सभी मानों के साथ एक 2D सरणी लौटाएगा, जिसकी आप String मान से तुलना नहीं कर सकते

0
HTH 16 अप्रैल 2020, 10:16