Хорошо, моя главная цель - пройти каждое слово и проверить, подчеркнуто ли слово. Если это так, я хочу изменить размер шрифта на int x.Как перебирать каждое слово, ms-word?
Я попытался просто идти через каждый символ, как так Edit: Обновленный код
private void button1_Click(object sender, EventArgs e)
{
word.Application page = new word.Application();
page.Visible = true;
word.Document doc = null;
foreach (string fi in listBox1.Items)
{
doc = page.Documents.Open(Application.StartupPath + "\\old\\" + fi);
if (doc != null)
{
int start = 0;
foreach (string text in doc.Range().Text.Split(" \r\n\t.".ToCharArray()))
{
int x = doc.Range().Text.IndexOf(text, start);
if (doc.Range(x, text.Length - 1).Underline == word.WdUnderline.wdUnderlineSingle)
doc.Range(x, text.Length - 1).Font = new word.Font() { Name = "Times New Roman", Bold = 4, Size = 12 };
else
doc.Range(x, text.Length - 1).Font = new word.Font() { Name = "Times New Roman", Size = 8 };
start = x+text.Length;
}
}
}
//doc.Save();
// doc.Close();
// page.Quit();
}
Но, я получаю эту ошибку
Вызов был отвергнут вызываемым. (Исключение из HRESULT: 0x80010001 (RPC_E_CALL_REJECTED))
Я понятия не имею, почему это дает, что
Невозможно воспроизвести ваши условия; но, возможно, эта ссылка может быть полезна: http://stackoverflow.com/questions/9747844/getting-call-was-rejected-by-callee-exception-in-vsto-word-application – varocarbas
Благодарю вас за помощь, но Теперь я очень близко подошел к моему ответу. Он просматривает слова, но в настоящее время я тестирую их на 28-страничном документе, поэтому для получения результатов потребуется время. – ismellike
Счастливый читать, что. Если вы лучше понимаете точную проблему/решение, соответствующим образом обновите свой вопрос (даже можете написать собственный ответ). Если это было просто связано с тем, что он не повторяется через диапазоны (не строго связанные с автоматизацией Word), которые могут быть не слишком полезными для других, вы можете просто удалить этот вопрос. – varocarbas