2012-05-18 16 views
7

no puedo obtener un rango de selección de excel. Estoy usando el bloque de código debajo y puedo obtener una hoja activa como esta. pero solo necesito un rango de selección. ¿Cómo puedo hacer esto?cómo obtener un rango de selección de excel 2010?

Microsoft.Office.Interop.Excel.Application ExApp = Globals.ThisAddIn.Application as Microsoft.Office.Interop.Excel.Application; 
Microsoft.Office.Interop.Excel.Worksheet ExWorksheet = ExApp.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet; 
Microsoft.Office.Interop.Excel.Range activeSheet = ExWorksheet.UsedRange as Microsoft.Office.Interop.Excel.Range; 

Gracias por su asesoramiento.

Respuesta

10

La selección es una propiedad de la aplicación, por lo que deben tener algo como:

Microsoft.Office.Interop.Excel.Application ExApp = Globals.ThisAddIn.Application as Microsoft.Office.Interop.Excel.Application; 
Microsoft.Office.Interop.Excel.Range SelectedRange = ExApp.Selection as Microsoft.Office.Interop.Excel.Range; 

Sólo tenga cuidado de que el objeto devuelto por la selección podría ser algo diferente fromn un rango (por ejemplo, podría ser un gráfico), por lo que debe verificar los valores nulos de SelectedRange.

+4

esto es trabajo. pero también puedo hacer esto: Microsoft.Office.Interop.Excel.Range selectedRange = ExApp.ActiveWindow.RangeSelection; –

+0

gracias, ¿cómo puedo entender el rango seleccionado está vacío, incluso si selecciono una sola celda que no está vacía o nula. –

+0

¿significa que quiere verificar si la celda seleccionada no contiene nada? –

Cuestiones relacionadas