Este programa en Excel VBA utiliza la propiedad Count, la función IsNumeric, la función IsEmpty y el método de intersección para probar una selección.

Situación:

Test a Selection in Excel VBA

Coloque un botón de comando en la hoja de trabajo y añadir las líneas de código siguientes:

  1. En primer lugar, declaramos dos objetos Range. Llamamos a la gama de objetos RNG y celular.

Dim rng As Range, cell As Range
  1. Inicializar el rng Rango objeto con Range ( «C4: D10») y la célula objeto Range con el rango seleccionado.

Set rng = Range("C4:D10")

Set cell = Selection
  1. Añadir las siguientes líneas de código:

If cell.Count = 1 And IsNumeric(cell) And Not IsEmpty(cell) And Not Intersect(rng, cell) Is Nothing Then

MsgBox "You win"

Else

MsgBox "You lose"

End If

Explicación: Intersect (RNG, célula) devuelve un objeto Range que representa el enlace: / VBA-ejemplos-union-Intersección [intersección] de los dos rangos. Si este objeto rango no es nada, el número de un solo (primeras tres condiciones) está en el intervalo bordeado.

  1. Pruebe el programa.

Sólo cuando se selecciona un único número en el rango bordeado el resultado será:

Test a Selection Result

En todos los demás casos, el resultado será:

Test a Selection Result