2016-11-03 21 views
0

我正在使用Word 2016,并且无法从对象获取数据。字互操作不提取数据

我的片段是这样:

void Application_DocumentOpen(Word.Document document) 
    { 
     var test = document.Paragraphs; 
    } 

前看着段分配给:

评价方法Microsoft.Office.Interop.Word.DocumentClass.get_Paragraphs()调用需要一个COM调用。在这种情况下不支持对COM对象的方法进行评估。

后,它只是给出:System._ComObject用具有0x0df4fd18

我试图寻找这两个错误,但没有发现相关结果的成员NativeView。

UPDATE 所以我比较这对他们给出的例子,那就是:

void Application_DocumentBeforeSave(Word.Document Doc, ref bool SaveAsUI, ref bool Cancel) 
    { 
     Doc.Paragraphs[1].Range.InsertParagraphBefore(); 
     Doc.Paragraphs[1].Range.Text = "This text was added by using code."; 
    } 

什么是整齐的是,如果我看Doc.Paragraphs[1].Range.Text为他们的榜样,我得到了段落的文字。如果我试图用我的版本做到这一点,我得到:不能用[]对'Paragraphs'类型的表达式应用索引

所以......段落没有返回我期望的结果。由于方法在加载之前触发,是否有可能无法访问文档?

+0

您的第一个错误是调试器的限制。你能解释一下你想做什么吗?能够看到段落中包含的文字? –

+0

我的长期目标是通过编号列表对文档进行分段,但我只是试图在此处访问数据。您是否暗示调试器即使已被收购也无法看到数据? – SeanVDH

回答

0

显然只有已调用的方法/属性存在于类中。这是有道理的,因为它可以防止对象不断加载大量数据,但调试有点令人困惑。

在任何情况下,将测试更改为doc.Paragraphs [1] .Range.Text似乎已使对象可见。