Estoy intentando lo que pensé que sería una declaración de vba bastante simple para probar si un rango con nombre tiene un alcance en un libro de trabajo o en una hoja específica.Progamáticamente determina si un rango con nombre tiene un alcance en un libro de trabajo
Como prueba, he creado un nuevo documento de Excel y lo he agregado en 6 rangos con nombre. Aquí es cómo se nos extienden en el Administrador de Nombre:
Name | Refers To | Scope
-------------+----------------------+-----------
rng_Local01 | =Sheet1!$A$2:$A$16 | Sheet1
rng_Local02 | =Sheet1!$C$2:$C$16 | Sheet1
rng_Local03 | =Sheet1!$E$2:$E$16 | Sheet1
rng_Global01 | =Sheet1!$B$2:$B$16 | Workbook
rng_Global02 | =Sheet1!$D$2:$D$16 | Workbook
rng_Global03 | =Sheet1!$F$2:$F$16 | Workbook
yo esperaría que la ejecución:
For i = 1 To ThisWorkbook.Names.Count
If ThisWorkbook.Names(i).WorkbookParameter Then Debug.Print ThisWorkbook.Names(i).Name
Next i
daría lugar a los tres Workbook
rangos con nombre de ámbito que estar conectado, sin embargo, nada sucede. No hay error El .Names(i).WorkbookParameter
evalúa a False
en TODOS de los rangos nombrados y no estoy seguro de por qué.
Mirando a través del objeto Name
en la ayuda de VBA me encontré con ValidWorkbookParameter
que se parece a la de sólo lectura primo de WorkbookParameter
, sin embargo el uso de ese método no hace ninguna diferencia.
También he intentado fijar explícitamente ThisWorkbook.Names(i).WorkbookParameter = True
, sin embargo, esto resulta en un error:
"Invalid procedure call or argument"
A pesar de que WorkbookParameter
aparece como Lectura/Escritura
¿Alguien puede arrojar ¿Alguna luz sobre por qué esto no está funcionando como lo estoy esperando también? ¿He entendido mal cómo se supone que Name.WorkbookParameter
funciona? ¿Alguien puede hacer que esto se ejecute con éxito?
Gracias por las soluciones muy útiles chicos ... Todavía tengo curiosidad por el comportamiento de las propiedades 'WorkbookParameter' y' ValidWorkbookParameter' del objeto 'Name' en VBA. En mi opinión, esas propiedades no funcionan * como se anuncian *. –
No estoy seguro de qué es exactamente WorkbookParameter, pero sospecho que es para Excel Services en Sharepoint y no para el cliente Excel –