代码之家  ›  专栏  ›  技术社区  ›  TonyP

如何解决此Microsoft.Office.Excel方法调用中的歧义?

  •  17
  • TonyP  · 技术社区  · 15 年前

    我正在使用c代码中的Office2007Excel工作表功能。 VS2010发出此警告

    'Microsoft.Office.Interop.Excel.\u工作表.Activate()' 和非方法 'Microsoft.Office.Interop.Excel.DocEvents\u Event.Activate'。 使用方法

    如何解决此问题? 电话是

    xSheet.Activate(); 
    

    xSheet

    ref Microsoft.Office.Interop.Excel.Worksheet xSheet
    
    1 回复  |  直到 14 年前
        1
  •  31
  •   KurzedMetal    9 年前

    你需要消除这个问题的歧义 Activate 姓名。在工作表界面中, 激活 是一个方法(如果视为 _Worksheet 对象)或事件(如果视为 DocEvents_Event 对象)。

    把你的东西扔给 Microsoft.Office.Interop.Excel._Worksheet 先打电话 Activate()

    ((Microsoft.Office.Interop.Excel._Worksheet)xSheet).Activate();
    

    或者宣布一个新的 变量并在方法中使用它。

    _Worksheet sheet = xSheet;
    sheet.Activate();
    

    否则,可以将方法声明更改为引用 _工作表 而不是 Worksheet 以及所有相关的声明。

    void MyMethod(ref Microsoft.Office.Interop.Excel._Worksheet xSheet)
    {
        // ...
    }
    
    // usage:
    _Worksheet sheet = new Worksheet();
    MyMethod(ref sheet);