VBA "लाइक" वह नहीं करता है जो उसे करना चाहिए


0

मेरे पास लगभग 2500 पंक्तियों की एक सूची है और मैं जांच करना चाहता हूं कि पहले कॉलम में "इंटर्न" शब्द "उसके बाद": "दिखाई दे रहा है या नहीं: (a इंटर्न के बाद किसी भी स्थिति में) हो सकता है"

कोड का महत्वपूर्ण हिस्सा इस तरह दिखता है:

For k = 1 To lastrowND
intern = Worksheets("new Data").Cells(k, 1).Value


If Not intern Like "*intern*:" Then

हालाँकि यह कमांड कुछ भी फ़िल्टर नहीं करता है। मेरी गलती कहाँ है?

आपका बहुत बहुत धन्यवाद


मुझे लगता है कि यह विफल रहता है: अंत में।
LPChip

क्या आपने पुष्टि की है (एक ब्रेकपॉइंट के माध्यम से) कि किसी भी मूल्य वास्तव में उस पैटर्न से आबाद हैं जिसे आप खोज रहे हैं? क्या अन्य (अधिक बुनियादी) पैटर्न उम्मीद के मुताबिक काम करते हैं?
Ƭᴇcʜιᴇ007

हाँ, मेरे पास काम करने वाला कोड था जब वह केवल "इंटर्न" की तलाश में था, लेकिन मुझे अतिरिक्त शर्त की आवश्यकता है कि स्ट्रिंग में इसके बाद "":
Mario Adenauer

जवाबों:


4

यदि आपके डेटा में बृहदान्त्र के बाद कुछ भी है, तो आपको एक अतिरिक्त की आवश्यकता होगी * सच का परीक्षण करने के लिए। ( *intern*:* )

वाइल्डकार्ड्स को लीड करने और आगे बढ़ने के लिए आपको लगता है कि चूक के रेगेक्स प्रकार। हालांकि, नियमित अभिव्यक्ति पागलपन से शक्तिशाली हो सकती हैं, इसलिए यदि आपके पास समय है तो उनके साथ खेलने के लिए कुछ समय लेने के लायक है।


4

इस तरह से नियमित अभिव्यक्ति का उपयोग करने की कोशिश करें:

Dim strPattern As String: strPattern = "intern(.*?):"
Dim regEx As New RegExp

' ...

With regEx
     .Global = True
     .IgnoreCase = False
     .Pattern = strPattern
End With

For k = 1 To lastrowND
   intern = Worksheets("new Data").Cells(k, 1).Value

   If Not regEx.Test(intern) Then
   ' ...

1
यह बहुत ही आशाजनक लग रहा है लेकिन मैंने कभी भी इस फ़ंक्शन के साथ काम नहीं किया है। मैं वास्तव में लूप [वर्कशीट ("नया डेटा") को कैसे एकीकृत करता हूं। इस कमांड के साथ सेल (k, 1) .Value] thx वैसे भी
Mario Adenauer

मारियो, आपको पाश में कुछ भी बदलने की जरूरत नहीं है! बस लूप दिम regEx को न्यू RegExp के रूप में परिभाषित करें और "इफ रिग्रेस्ट।टेस्ट (इंटर्न) उसके बाद" इफ नॉट इंटर्न लाइक "के बजाय" प्रशिक्षु :" फिर"। मैंने भी अपना उत्तर संपादित कर लिया है, कृपया देखें
duDE

कोड के अपने संपादन के लिए Thx। हालाँकि मैं नई RegExp के रूप में Dim regEx की ओर इशारा करते हुए कोड संकलित नहीं कर सकता
Mario Adenauer

शायद केवल कुछ निर्भरताएँ गायब हैं। टूल्स पर जाएं - & gt; संदर्भ - & gt; खोजें और amp; "Microsoft VBScript रेगुलर एक्सप्रेशंस" की जाँच करें
duDE

आपकी मदद के लिए Thx दोस्त। योरिक ने इसके बजाय ऊपर टिप्पणी में सही सूचक दिया, प्रशिक्षु : "मुझे अंत में एक और जोड़ने की आवश्यकता थी क्योंकि स्ट्रिंग आमतौर पर कभी समाप्त नहीं होती है:
Mario Adenauer
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.