2012-02-23 69 views

Respuesta

35

Incluso si realmente se desaconseja usar celdas de combinación en Excel (use Center Across Selection por ejemplo, si es necesario), la celda que "contiene" el valor es la del arriba a la izquierda (al menos, esa es una forma de expresarlo).

Por lo tanto, se puede obtener el valor de las celdas combinadas en el rango B4:B11 de varias maneras:

  • Range("B4").Value
  • Range("B4:B11").Cells(1).Value
  • Range("B4:B11").Cells(1,1).Value

También se puede observar que todos los demás las células no tienen ningún valor en ellos. Durante la depuración, puede ver que el valor es empty.

También tenga en cuenta que Range("B4:B11").Value no funcionará (provoca un error de ejecución número 13 si intenta Debug.Print) porque devuelve una matriz.

+46

Cuando no conozco los límites del área fusionada, obtengo el valor con 'Rango (" B6 "). MergeArea.Cells (1,1) .Value' –

+0

¡Buen consejo! JMax

+0

@Josh Brown: solución increíble ... gracias –

19

Josh Brown dio (en un comentario) lo que creo que es la mejor respuesta:

Cuando no sé de los límites de la zona fusionada, me sale el valor con

Range("B6").MergeArea.Cells(1,1).Value 

Este es útil en VBA cuando, por ejemplo, está recorriendo archivos que podrían haber combinado celdas de rangos desconocidos, por lo que puede ser mucho más general con este método. Gracias Josh!

0

Esto se puede hacer en 2 pasos:

Nombre del rango de las celdas combinadas; resalte la celda fusionada y luego vaya a la Barra de cinta: Formulas Tab --> Define Name;

Asegúrese de que no haya espacios en el nombre. Ejemplo: defined_Name. Vaya a la celda deseada para ver la salida/resultado. En esa celda, escriba: =defined_Name.

Presiona intro porque has terminado.

Cuestiones relacionadas