J'ai une application écrite en VB.NET qui interagit avec Excel via interop. J'ai finalement rencontré le problème connu du mode d'édition de cellule (voir MSDN et stackoverflow pour un peu d'arrière-plan).Solution de contournement pour voir si Excel est en mode d'édition de cellule dans .NET
J'ai essayé de convertir le code suggéré VB.NET mais continuer à obtenir l'erreur suivante:
Reference required to assembly 'office, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' containing the type 'Microsoft.Office.Core.CommandBars'. Add one to your project. (BC30652) - E:\ ... .vb:3471
Le code d'origine C# (à partir des articles previosuly mentionnés) est la suivante
private bool IsEditMode()
{
object m = Type.Missing;
const int MENU_ITEM_TYPE = 1;
const int NEW_MENU = 18;
// Get the "New" menu item.
CommandBarControl oNewMenu = Application.CommandBars["Worksheet Menu Bar"].FindControl(MENU_ITEM_TYPE, NEW_MENU, m, m, true);
if (oNewMenu != null)
{
// Check if "New" menu item is enabled or not.
if (!oNewMenu.Enabled)
{
return true;
}
}
return false;
}
Mon
converti le code VB.NET est comme suit
Private Function isEditMode() As Boolean
isEditMode = False
Dim m As Object = Type.Missing
Const MENU_ITEM_TYPE As Integer = 1
Const NEW_MENU As Integer = 18
Dim oNewMenu As Office.CommandBarControl
' oExcel is the Excel Application object
' the error is related to the below line
oNewMenu = oExcel.CommandBars("Worksheet Menu Bar").FindControl(MENU_ITEM_TYPE, NEW_MENU, m, m, True)
If oNewMenu IsNot Nothing Then
If Not oNewMenu.Enabled Then
isEditMode = True
End If
End If
End Function
J'ai ajouté un (COM) référe e à la bibliothèque d'objets Microsoft Office
Imports Office = Microsoft.Office.Core
Imports Microsoft.Office.Interop
Je suis un peu coincé. J'ai déjà essayé de référencer indirectement l'objet CommandBar, et de rajouter des réfrences mais je n'arrive pas à comprendre quel est le problème. des idées?
devrait être importations Bureau = Microsoft.Office .Core Importations Microsoft.Office.Interop.Excel pas Imports Office = Microsoft.Office.Core Importations M icrosoft.Office.Interop –