C# Word 2007删除分节符

C# Word 2007删除分节符,c#,replace,ms-word,ms-office,C#,Replace,Ms Word,Ms Office,我有一个word 2007.doc文件,其中包含多个子文档,这些文档由多个部分分隔 有没有办法从文档中删除所有分节符 我试图找到并替换它们,但收到一个错误 private void RemoveAllSectionBreaks(Word.Document doc) { Word.Find find = doc.Range(ref oMissing, ref oMissing).Find; find.ClearFormatting(); //find.Text = &quo

我有一个word 2007
.doc
文件,其中包含多个子文档,这些文档由多个部分分隔

有没有办法从文档中删除所有分节符

我试图找到并替换它们,但收到一个错误

private void RemoveAllSectionBreaks(Word.Document doc)
{
    Word.Find find = doc.Range(ref oMissing, ref oMissing).Find;
    find.ClearFormatting();
    //find.Text = "^b"; // This line throws an error
    find.Text =((char)12).ToString(); // Same error when attempting it this way
    find.Replacement.ClearFormatting();
    find.Replacement.Text = "";

    find.Execute(ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, Word.WdReplace.wdReplaceAll, ref oMissing, ref oMissing, ref oMissing, ref oMissing);
}
find.Text
行将生成错误-

用户代码未处理SEHExException

外部组件引发了异常

我没有得到关于错误可能是什么的任何进一步细节。该代码在word 2003中运行正常,但我需要在word 2007中运行该代码


我是否遵循word 2007的正确方法?

我最终采用了不同的方法。由于单词find功能导致了一个错误,我决定对搜索/删除进行编码。下面的代码将删除它遇到的所有分节符

private void RemoveAllSectionBreaks(Word.Document doc)
{
    Word.Sections sections = doc.Sections;
    foreach (Word.Section section in sections)
    {
        section.Range.Select();
        Word.Selection selection = doc.Application.Selection;
        object unit = Word.WdUnits.wdCharacter;
        object count = 1;
        object extend = Word.WdMovementType.wdExtend;
        selection.MoveRight(ref unit, ref count, ref oMissing);
        selection.MoveLeft(ref unit, ref count, ref extend);
        selection.Delete(ref unit, ref count);
    }
}

很晚才恢复,但我使用的另一种解决方案是,您也可以使用VSM查找并替换分节符,使用“^m”表示节,使用“^p”表示段落,或者使用空字符串

using Word = Microsoft.Office.Interop.Word;

object missing = Missing.Value;
Word.Document tmpDoc = wordApp.Documents.Open(fileToOpen);

object findText = "^m";
object replaceText = "^p^p";
tmpDoc.Range().Find.Execute(ref findText,
    true, true, true, ref missing, ref missing, ref missing,
    ref missing, ref missing, ref replaceText, Word.WdReplace.wdReplaceAll, 
    ref missing, ref missing, ref missing, ref missing);

除此之外,我还设法找出了根本问题——对于遇到这张支票的谷歌用户来说——以解决最初的查找问题。