كيفية تقليم أو تقسيم اسم المتغير في كلمة VBA

StackOverflow https://stackoverflow.com//questions/10660043

  •  11-12-2019
  •  | 
  •  

سؤال

لدي متغير مثل هذا:

var = "word1 (should be replaced by word1)"

أحتاج إلى الحصول على كلمة 1 بمفردها وأحيانًا قد تكون كلمة (كلمات) ولكن سيكون بعدها دائمًا (*).هل هناك طريقة لحذف النص الموجود بين العلامات () ثم إزالة () ثم إزالة أي مسافة (مسافات) بعد الكلمة الأخيرة؟

لست متأكدا من أي طريقة للقيام بذلك.

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

المحلول

أبسط سيكون:

var = Trim(Mid(var, 1, InStr(var, "(") - 1))

InStr إرجاع فهرس التواجد الأول لـ "(".أطرح 1 لخصم المركز الذي يشغله "(".

Mid يقطع السلسلة من الحرف الأول في الموضع 1، إلى الفهرس الذي يتم إرجاعه بواسطة InStr.

ثم Trim لإزالة المسافات الزائدة.

نصائح أخرى

مثل هذا؟ giveacodicetagpre.

تحرير

يمكن تقصير الرمز أعلاه أكثر giveacodicetagpre.

أود استخدام وظيفة الانقسام. giveacodicetagpre.

سيكون لديك الآن صفيف مع 2 عناصر.

تقسيم العنصر الثاني giveacodicetagpre.

ثم انضمام: giveacodicetagpre.

سيعمل طالما أن هناك مجموعة واحدة فقط من الأقواس في السلسلة.

الطريقة البديلة هي الاستفادة من مكتبة التعبير العادية ولكنها إجابة أطول.لن يكون الأمر فعالا ولكنه سيكون من الأفضل أن يحتاج إلى التعامل مع السلاسل أكثر تعقيدا.


تحديث: ذهبت أكثر من السؤال ربما دعا إليه.يضمن الحل الخاص بي إزال النص بين قوسين - أي نص بعد الاحتفاظ بالنص الأقواس أيضا.

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