2011-06-09 18 views
13

Tengo un rango calculado de valores en una columna oculta que utilizo para un cuadro desplegable. Para averiguar qué valor ha seleccionado el usuario, trato de ejecutar una búsqueda en ese rango, pero por algún motivo Excel no devolverá la celda correspondiente a su selección siempre que la columna esté oculta.Realice una búsqueda en celdas ocultas

¿Cómo puedo obtener Encontrar trabajo en las células en el rango oculto. Recuerde: estoy buscando valores calculados de celda, no fórmulas.

El siguiente no funciona:

Set inserted = Range("RDS_Event_IDs").Find(Range("SelectedEvent"), , xlValues, xlWhole)

siempre y cuando las células en Range("RDS_Event_IDs") es oculto.

Dado que la solución tiene que funcionar en situaciones generales, donde parte o la totalidad del rango que se busca puede estar oculto, y se puede buscar toda la hoja, no es posible ocultar mediante programación todas las filas afectadas y columnas y luego volver a ocultar los que estaban ocultos anteriormente.

Respuesta

19

Según Andy Pope (y nunca se equivoca) Buscar solo funciona en celdas ocultas si está utilizando xlFormulas. Tal vez un partido en su lugar?

Set inserted = Cells(Application.WorksheetFunction.Match("SelectedEvent", Range("RDS_Event_IDs"), 0), Range("RDS_Event_IDs").Column) 
+0

Ajuste leve, quiero ir 'Set inserted = Range (" RDS_Event_IDs "). Cells (... Match ...)', pero sí, esto es absolutamente una buena solución. ¡Gracias por la sugerencia! – Alain

+0

Esto funciona en celdas ocultas, pero no en celdas ocultas de autofiltrado. – brettdj

+1

Es mejor usar 'Application.Match' que' WorksheetFunction.Match', ya que puede manejar los errores correctamente. Vea esta respuesta: https://stackoverflow.com/a/17751568/224067. 'Application.Match' no se completó automáticamente en el IDE de VBA, pero funciona, y tiene los argumentos como la función de coincidencia normal. – nhinkle

2

¿Es realmente NECESARIO hacerlo dentro de un macro, sería más fácil use un fósforo:

=MATCH(G9;H9:H16;0) 

G9: Celular de la H9 DropDownBox

: H16: Su gama

0 : para una coincidencia exacta

Devuelve el índice dentro de la matriz