سؤال

أي شخص يعرف كيف يمكنني تغيير نص كلمة.مجموعة وجوه ولكن لا تزال تحتفظ هو تنسيق ؟ على سبيل المثال إذا كان لدي "هذا النص"وأنا تغييره إلى "أن txt"،txt سوف يكون لا يزال في جريئة.

أنا أبحث عن طريقة تغيير النص الكامل النطاق ، ليس فقط كلمة واحدة ، كما أتقدم النص الجديد مستقلة من API, أنا يمكن أن نفترض أن النص الجديد و النص القديم لديها نفس العدد من الكلمات.

هذا ما لدي حتى الآن:

    for (int i = 0; i < oldWords.Length; i++)
    {
        if (oldWords[i] == newWords[i])
            continue;

        object Replace = WdReplace.wdReplaceOne;
        object FindText = oldWords[i];
        object ReplaceWith = newWords[i];
        var success = Sentence.Find.Execute(parameters stub);
    }            

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

تحرير:حصلت عليه بعد تنفيذ كل, كان استعادة الأصلي نهاية الموقف من نطاق بلدي.

شكرا

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

المحلول

لا يمكنك استخدام Execute طريقة تغيير النص مع التنسيق.يمكنك أن تفعل ذلك مثل:

Range rng=doc.Content;
rng.Find.Execute(ref finding, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing)

//if this method returns true, you will get the range at the finding location.
if(rng.Find.Found)
{
  rng.Text='sth';
  rng.Bold=0;
}

ربما يكون هذا يمكن أن تساعدك.

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