Выбрать диапазон по строке - PullRequest
1 голос
/ 07 июня 2010

Как я могу изменить эту функцию, чтобы я выбирал диапазон символов в документе Word между символами «E» и «F», если у меня есть;xasdasdEcdscasdcFvfvsdfv подчеркивает мне диапазон -> cdscasdc

private void Rango()
{
Word.Range rng;

Word.Document document = this.Application.ActiveDocument;

object startLocation = "E";
object endLocation = "F";

// Supply a Start and End value for the Range. 
rng = document.Range(ref startLocation, ref endLocation);

// Select the Range.
rng.Select();

}

Эта функция не позволит мне передать по ссылке два объекта строкового типа .......

Спасибо

1 Ответ

7 голосов
/ 07 июня 2010

Вам необходимо передать позицию в документе, который вы хотите охватить диапазоном, см .: Как: определить и выбрать диапазоны в документах

Я добавил пример кода ниже:

var word = new Microsoft.Office.Interop.Word.Application();

string document = null;
using (OpenFileDialog dia = new OpenFileDialog())
{
    dia.Filter = "MS Word (*.docx)|*.docx";
    if (dia.ShowDialog() == DialogResult.OK)
    {
        document = dia.FileName;
    }
}           

if (document != null)
{
    Document doc = word.Documents.Open(document, ReadOnly: false, Visible: true);
    doc.Activate();
    string text = doc.Content.Text;

    int start = text.IndexOf('E') + 1;
    int end = text.IndexOf('F');
    if (start >= 0 && end >= 0 && end > start)
    {
        Range range = doc.Range(Start: start, End: end);
        range.Select();
    }
}

Не забудьте закрыть документ, Word и т. Д.

...