una texto repetir rellenar para otra información grafico etiquetas etiqueta diferentes desde datos con celdas autorrelleno autocompletar agregar .net excel vsto com-interop

.net - rellenar - excel repetir un texto en diferentes celdas con formula



¿Cómo saber si la aplicación de Excel está en modo de edición de celda? (3)

Existe una propiedad Application.Ready que se supone que debe proporcionarle esta información, pero en la práctica no funciona de manera confiable. Vea aquí un hackaround.

También es posible que desee ver la configuración Application.Interactive = false mientras su código .net está haciendo sus cosas.

Estoy escribiendo un complemento de Excel usando COM Interop desde .net. Tengo un comando que abre un cuadro de diálogo, y desde el cuadro de diálogo trabajo como recopilar datos del rango utilizado de varias hojas. El problema es que si una celda está en modo de edición, algunas de las llamadas que necesito hacer arrojarán excepciones. Me gustaría una forma de determinar de antemano que Excel está en modo de edición, para que pueda advertir al usuario que termine de editar la celda primero.

¿Algunas ideas?


Prueba esta función:

Function IsInEditMode(ByRef exapp As Excel.Application) As Boolean If exapp.Interactive = False Then Return False Else Try exapp.Interactive = False exapp.Interactive = True Return False Catch Return True End Try End If End Function


No mencionaste qué idioma estás usando. La función de SZL está escrita en VB. Como estoy usando C # tuve que convertirlo. Funcionó muy bien. Aquí está el código C # equivalente.

bool IsInEditMode(ref Microsoft.Office.Interop.Excel.Application exapp) { if (exapp.Interactive == false) { return false; } else { try { exapp.Interactive = false; exapp.Interactive = true; return false; } catch { return true; } } }