سؤال

أرغب في تحليل عمود الخلية من سلاسل في Excel VBA، تحتوي كل من الخلية على ما يلي:

2 '␂'

أرغب في تغيير محتويات هذه الخلية لاحتواء فقط 2 (أو أي شخصيات رقمية فقط قبل "السلسلة". ماذا ستكون أسهل طريقة لتحليل هذه المعلومات؟ شكرا.

هل كانت مفيدة؟

المحلول

إذا كنت متأكدا من التنسيق، فابحث عن السلسلة قبل "(apostrophe) وتغيير قيمة الخلية. على افتراض أنك على الخلية التي تحتوي على هذه القيمة، استخدم رمز VBA التالي.

activecell.text = mid(activecell.text, 1, instr(1, activecell.Text, "'")-1)

يبحث عن النقاصي ومستخلص الأحرف قبل ذلك & يضعه في الخلية الحالية.

نصائح أخرى

على افتراض أن البيانات الرقمية هي دائما في بداية الخلية، يمكنك استخدام Regex للعثور على أي أرقام متتالية في بداية السلسلة، توقف بمجرد أن تضرب الأحرف الأولى غير الرقمية. إليك وظيفة ستفعلها من أجلك، آمل أن يساعدها. تقف ^ لبدء الخلية، و ( d +) تعني أحرف رقمية واحدة أو أكثر ووسائل. * يعني تليها حرف صفر أو أكثر. أفترض أن هناك سلسلة واحدة فقط من الأرقام التي تحتاجها، لذلك لدي Regex فقط RETORN SUMSACH 0 (المباراة الأولى).

Function ExtractNumericData(ByVal text As String) As String

Application.ScreenUpdating = False
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")

RE.Pattern = "^(\d+).*"
RE.Global = True
Set allMatches = RE.Execute(text)
ExtractNumericData = allMatches.Item(0).submatches.Item(0)
Application.ScreenUpdating = True

End Function
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top