Para evitar bucles y tomar ventaja de la velocidad de ejecución casi instantánea, puede utilizar el método Excel.WorksheetFunction.CountA
, que devuelve el mismo resultado que la función de hoja = CONTARA().
Suponiendo que su referencia Excel.Application se llama 'excelApp' y su referencia Excel.Worksheet se llama 'hoja', puede utilizar código como el siguiente en C# 4.0:
// C# 4.0
int dataCount = (int)excelApp.WorksheetFunction.CountA(worksheet.Cells);
if (dataCount == 0)
{
// All cells on the worksheet are empty.
}
else
{
// There is at least one cell on the worksheet that has non-empty contents.
}
En C# 3.0 y a continuación, es un poco más detallado, ya que hay que prever explícitamente los argumentos opcionales que faltan:
// C# 3.0 and below
int dataCount = (int)excelApp.WorksheetFunction.CountA(
worksheet.Cells,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
if (dataCount == 0)
{
// All cells on the worksheet are empty.
}
else
{
// There is at least one cell on the worksheet that has non-empty contents.
}
creo que esto debería hacerlo por usted!
Mike
Sé que esto es viejo, pero además de las respuestas desactivar estos eventos, rellenar la hoja de cálculo, a continuación, volver a activarlos: 'currentInstance.EnableEvents = false/true; currentInstance.ScreenUpdating = false/true; ' –