Wenn in einer Tabelle ein versteckter Text gefunden wird, wird der Bereich nach dem Einfügen des Kommentars für einen versteckten Text beeinträchtigt und ich bin mir jetzt sicher, wie ich weitermachen soll. Meine aktuelle Logik bleibt für immer im allerersten versteckten Text in der Tabelle hängen.
Das ist mein Code:
Code: Select all
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;
}
}
Wie kann ich das beheben?
Mobile version