Когда внутри таблицы обнаруживается скрытый текст, после вставки комментария к скрытому тексту диапазон затрагивается, и теперь я знаю, как двигаться дальше. Моя текущая логика навсегда застревает в самом первом скрытом тексте внутри таблицы.
Это мой код:
Код: Выделить всё
private void RemoveHiddenText()
{
if (cleanUpProperties.SelectedcmbHiddenText == 2)
{
return;
}
Word.Range searchRange = wordDocument.Content.Duplicate; // Ensures full document range
searchRange.Start = 0;
searchRange.End = wordDocument.Content.End;
Word.Find find = searchRange.Find;
find.ClearFormatting();
find.Font.Hidden = 1; // True
find.Text = "";
find.Forward = true;
find.Wrap = Word.WdFindWrap.wdFindStop;
string commentMessage = "";
Word.Comment comment = null;
while (find.Execute())
{
switch (cleanUpProperties.SelectedcmbHiddenText)
{
case 0:
commentMessage = Helper.GetLanguageString("ABC_RemoveHiddenTextsComment") + $"\"{searchRange.Text}\"";
comment = searchRange.Comments.Add(searchRange, commentMessage);
break;
case 1:
commentMessage = Helper.GetLanguageString("ABC_cmbRemoveHiddenTextsUnhide");
comment = searchRange.Comments.Add(searchRange, Helper.GetLanguageString("ABC_cmbRemoveHiddenTextsUnhide"));
searchRange.Font.Hidden = 0;
break;
default:
break;
}
if ((bool)searchRange.Information[Word.WdInformation.wdWithInTable])
{
int movingForwardBylength = 1;
searchRange.SetRange(searchRange.End + movingForwardBylength, wordDocument.Content.End);
}
else
{
// Move the search range forward to avoid infinite loop
searchRange.SetRange(searchRange.End, wordDocument.Content.End);
}
// Reconfigure Find for the new range
find = searchRange.Find;
find.ClearFormatting();
find.Font.Hidden = 1;
find.Text = "";
find.Forward = true;
find.Wrap = Word.WdFindWrap.wdFindStop;
}
}
Как это решить?
Подробнее здесь: https://stackoverflow.com/questions/798 ... xt-and-add
Мобильная версия