vinculos vincular una realizar permite otro otra libros libro hojas hoja hipervinculo fórmulas especifica entre enlazar diferentes datos como celdas celda automaticamente actualizar excel excel-formula

vincular - hipervinculo en excel a una celda especifica



Consulte el libro de trabajo de Excel por ruta, en función de los datos del valor de celda (3)

Tengo una hoja de Excel que extrae datos de otros libros de Excel cerrados. Actualmente funciona bien cuando lista la ruta completa del libro cerrado, pero me gustaría usar una variable, almacenada en una celda separada, como parte del nombre de ruta.

Por ejemplo, estoy tratando de hacer referencia a un libro llamado

workbook12.10.12.xls

En un libro de trabajo separado (diremos el libro de trabajo "activo"), tengo una celda con fórmula

= INDEX (''C: / Path [workbook12.10.12.xls] SHEET1''! $ B $ 1: $ B $ 5, MATCH ("texto de coincidencia", ''C: / Ruta [cuaderno12.10.12.xls] HOJA1''! $ A $ 1: $ A $ 5, 0))

que encuentra el valor en la columna B de workbook12.10.12 correspondiente a la celda en la columna A que contiene "coincidencia de texto". Esto funciona bien; sin embargo, tengo una celda en el libro de trabajo activo con el valor

12.10.12

y me gustaría de alguna manera hacer referencia a este valor en la función ÍNDICE.

No puedo tener los otros libros abiertos, por lo que la función INDIRECTO no ayudará. Google parece sugerir que Excel no tiene una solución única para este tipo de cosas ... ¿alguien puede ayudar, por favor? ¡Gracias!


Creo que lo que debes hacer es encontrar el registro específico en el archivo específico (fecha nombrada). Puedes hacerlo por un simple código VBA.

Suponga que va a buscar un # de registro, digamos REC001 en A1, archivo de fecha 12.10.12 en la celda C1, y REC001 que el resultado se muestre en la celda A7

En la hoja de trabajo, quiere ingresar la entrada y obtener resultados, haga clic con el botón derecho sobre la pestaña de la hoja y seleccione ''Ver código'' y pegue el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("C1")) Is Nothing Then Exit Sub Range("A7").Formula = "=INDEX(''C:/TEMP/[workbook" & Range("C5").Value & ".xls]SHEET1''!$B$1:$B$5, MATCH(" & Range("A1").Value & ", ''C:/TEMP/[workbook" & Range("C5").Value & ".xls]SHEET1''!$A$1:$A$5, 0))" End Sub

Luego, cada vez que edite C1, la fórmula se actualizará.

En realidad, no creo que deba usar la función INDEX en su caso. Es más simple usar una VLOOKUP. P.ej:

Range("A8").Formula = "=vlookup(" & Range("A1").Value & ",''C:/TEMP/[workbook" & Range("C5").Value & ".xls]SHEET1''!$A$1:$B$5,2,false)"

Deberá tener en cuenta algunos puntos: 1. pega el código en el objeto Sheet1 (o el nombre de la hoja) pero no para insertar un nuevo módulo 2. su ruta y nombre de archivo para el archivo de destino es correcto, incluidos los .xls y .xlsx 3. su archivo original solo cubre $ B $ 5 4. en VBA, le recomendamos que guarde el archivo como formato .xlsm


De la publicación de Frank Kabel en 2004 en el blog de Dicks , podrías

  1. Usar Laurent Longre ha desarrollado el complemento gratuito MOREFUNC.XLL que incluye la función INDIRECT.EXT
  2. Use SQL.REQUEST como se describe aquí * ya no parece ser compatible y no estoy seguro si esto podría manejar su solicitud INDEX/MATCH
  3. Utilice la función PULL de Harlan Grove

Además, podrías:

  1. Cree un "enlace sucio" directamente a través del código que ingresa una fórmula que hace referencia al libro de trabajo que necesita
  2. Para extraer valores, pero no para trabajar con rangos, podría usar el método ExecuteExcel4Macro XLM de Walkenbach

Puede almacenar una referencia completa que incluya la ruta del archivo a un rango en un archivo cerrado con un nombre en excel (ya sea directamente oa través de VBA basado en selecciones en celdas diferentes y utilizando el procedimiento Worksheet_Change como se indicó anteriormente) y luego consulte el archivo usando nombre en una fórmula como es normal. Esto supera la limitación en la función INDIRECTA.

El VBA es muy simple:

New_Ref = Hojas ("Wells"). Rango ("K6")

ActiveWorkbook.Names ("MyWorkbook"). RefersTo = "=" y New_Ref

El único truco es asegurarse de incluir "=" en el nombre.

Los nombres tienen una gran cantidad de usos una vez que detecta esto. Lo he usado para obtener datos de un archivo cerrado en un sitio sharepoint remoto sin ninguna dificultad. Supongo que Sharepoint trata con todos los permisos.