Existen varios métodos para lograr esto, cada uno de los cuales tiene ventajas y desventajas; Lo primero y más importante, necesitará una instancia de un objeto Hoja de trabajo, Application.ActiveSheet funciona si solo desea la que el usuario está mirando.
El objeto Hoja de cálculo tiene tres propiedades que se pueden usar para acceder a datos de celda (Células, Filas, Columnas) y un método que se puede usar para obtener un bloque de datos de celda (get_Range).
Los rangos se pueden cambiar de tamaño y demás, pero es posible que necesite usar las propiedades mencionadas anteriormente para averiguar dónde están los límites de sus datos. La ventaja de un Rango se pone de manifiesto cuando se trabaja con grandes cantidades de datos porque los complementos de VSTO se alojan fuera de los límites de la propia aplicación de Excel, por lo que todas las llamadas a Excel deben pasarse por una capa con sobrecarga; obtener un Rango le permite obtener/configurar todos los datos que desea en una llamada, lo que puede tener enormes beneficios de rendimiento, pero requiere que use detalles explícitos en lugar de iterar a través de cada entrada.
This MSDN forum post muestra un VB.desarrollador net haciendo una pregunta acerca de cómo obtener los resultados de una serie como una matriz
Código que se repite a través de cada celda de un rango es extremadamente ineficiente. Lea el rango en una matriz, realice las comprobaciones/cambios en la matriz y luego vuelva a escribir la matriz en el rango. Aceptemos dejar de usar este código y tal vez desaparecerá. – JimmyPena