Excel Interop - Cómo cambiar el rango con nombre

Tengo un archivo de plantilla de Excel en el que ingreso datos desde el conector OLEDB de SQL Server. El archivo contiene algunas tablas dinámicas que hacen referencia al conjunto de datos que está rellenando la base de datos.

Actualmente lo que hago es seleccionar todas las filas de la hoja usando el rango "Datos! $ A: $ K". Esto trae un problema con los valores en blanco que se muestran en la tabla dinámica.

o que quería hacer es crear una tabla con nombre sobre el conjunto de datos y referirme a las tablas dinámicas (además, obtengo algunas otras ventajas que aportan las tablas de nombres).

El número de filas, naturalmente, no está configurado, por lo que quería encontrar una manera de establecer el alcance del rango con nombre solo en los valores reales.

Estoy usando Excel Interop y C # para eso y no puedo encontrar una manera de cambiar el rango. Solo llegué a:

oRng = oSheet.get_Range("Transactions");

Que selecciona el rango con nombre. Pero, ¿cómo cambio qué células le pertenecen?

O tal vez hay una mejor solución que debería buscar?

EDITA

¡Los rangos dinámicos son la respuesta!

Resolví esto gracias a la respuesta de @TimWilliams:

"Use un rango dinámico en su plantilla:http: //ozgrid.com/Excel/DynamicRanges.ht"

Siento que los rangos dinámicos se describen mejor aquí:http: //www.contextures.com/xlpivot01.htm

Me encontré con un pequeño problema por el que no podía usar el rango en la tabla dinámica porque exigía que necesitara al menos 2 filas para funcionar: el archivo de plantilla solo tiene encabezados de columna. Agregué una cadena aleatoria a la primera celda de la segunda fila y la tabla dinámica aceptó eso.

Después tuve que eliminar esa fila usando el código c #.

Gracias chicos por la ayuda.

Respuestas a la pregunta(8)

Su respuesta a la pregunta