Vb.net 更改Word文档中的图表值后取消Excel编辑模式

Vb.net 更改Word文档中的图表值后取消Excel编辑模式,vb.net,excel,charts,Vb.net,Excel,Charts,我有一个VB应用程序,我需要它动态修改Word文档中一些预先创建的图表的值。我有许多图表需要根据从SQL server读取的数据进行更改。我的问题是我可以更改Word文档中第一个图表的值,但是当我尝试更改文档中的任何其他图表值时,我的代码崩溃 我为文档中的每个图表创建了单独的变量,这很好,然后我有: Dim chartShape As Word.InlineShape = objDoc.InlineShapes.Item(1) Dim oDedupeSpace As Word.I

我有一个VB应用程序,我需要它动态修改Word文档中一些预先创建的图表的值。我有许多图表需要根据从SQL server读取的数据进行更改。我的问题是我可以更改Word文档中第一个图表的值,但是当我尝试更改文档中的任何其他图表值时,我的代码崩溃

我为文档中的每个图表创建了单独的变量,这很好,然后我有:

    Dim chartShape As Word.InlineShape = objDoc.InlineShapes.Item(1)
    Dim oDedupeSpace As Word.InlineShape = objDoc.InlineShapes.Item(2)

    With chartShape.Chart.ChartData
        .Activate()
        .Workbook.Sheets(1).Range("B2").Value = nTotalUnique
        .Workbook.Sheets(1).Range("B3").Value = (nTotalFiles - nTotalUnique)
        .Workbook.Close()
    End With

    ' Now Update The Pie Chart For Duplication (Storage)
    With oDedupeSpace.Chart.ChartData
        .Activate()
        .Workbook.Sheets(1).Range("B2").Value = nTotalUniqueSpace
        .Workbook.Sheets(1).Range("B3").Value = (nTotalDisk - nTotalUniqueSpace)
        .Workbook.Close()
    End With
问题是,当对第二个图表进行更改时,错误消息表明VB认为我正在尝试创建一个新图表,并提到取消Excel编辑模式

在进行下一次更改之前,我如何取消第一次更改的编辑模式


代码错误屏幕截图]

您应该对问题(和/或原始错误消息)提供足够清晰的描述,而不是像“建议…”那样含糊不清。此外,您还应该包括代码的相关部分,并在理想情况下指出代码崩溃的确切位置。仅通过查看示例代码,就不清楚所有
.Workbook
引用的父变量是什么(似乎
Chardata
,但我不认为是这种情况)。试图访问已关闭的工作簿(在
.workbook.Close()之后)可能是您自己引起的错误。但这只是一个盲目的假设。请正确提问。对不起,上面代码段中的第二个.Activate()标记了此错误。对不起,信息质量太差。这是我的第一篇文章,我已更新了原始文章,以显示2个对象变量的声明。我还添加了两个显示错误的屏幕截图。我希望这符合你的标准。这与我的标准无关。这与允许任何愿意帮助你的人理解问题所在有关(不理解=对你没有帮助)。你不应该是最有兴趣写出足够清晰的问题的人;对我(或任何其他潜在的助手)来说,忽略你的帖子(或最终否决/搁置)会容易得多;但是,似乎.Workbook.Close()是负责的。根据您的代码,您正在使用两个与Excel文件链接的字型(该文件显然已打开,否则第一次尝试就会触发错误)。您正在使用.Workbook.Close()关闭此Excel文件(关联变量)。当您再次尝试访问此文件时,会出现错误。解决方案:删除第一个工作簿。关闭()。