Utilice el script Excel VBA para desconectar una segmentación de datos de todas las tablas dinámicas
Después de la prueba, es difícil pasar la variable como número de índice a través de la tabla dinámica en el objeto SlicerCache. Tal vez sea un ERROR de Microsoft. Cambié la variable ActiveWorkbook.SlicerCaches ("Slicer_Year"). PivotTables.Item (i) Cámbielo a 1 para hacer referencia correctamente a la tabla dinámica denominada "Slicer_Year" en la caché de sectores. PivotTables.Item(i) hace referencia con éxito a la tabla dinámica denominada "Slicer_Year" en el caché de sectores cambiando i a 1.
El siguiente es un procedimiento almacenado SUB genérico que elimina todas las conexiones de tabla dinámica a una caché de segmentación determinada: '?############### ####### ######################################### ###
'?[Descripción de la función]?Desconecte todos los datos de la tabla dinámica almacenados en caché de la segmentación de datos especificada.
'?[Lista de parámetros]?1.?Target?Libro de trabajo de destino;
'2.?SlicerCacheNameOrIndex?Nombre de caché de segmentación o número de índice (opcional).
'?[Tipo de retorno]?Ninguno.
'?######################################## # ########################
¿Público?Sub?DisconnectAllPivotTablesFromSlicerCache( ByVal?Target?As?Workbook,? _
¿PorVal?SlicerCacheNameOrIndex?As?Variant)
Dim?sliCacheAs?SlicerCache
Dim?sliCachesAs?SlicerCaches
¿Error?¿Reanudar?Siguiente
Establecer?sliCaches?=?Target.SlicerCaches
Si?sliCaches.Count?Entonces
Dim?spTables?As?SlicerPivotTables
> p>Establecer?sliCaches.Count?Entonces
Establecer?sliCaches?=?Target.SlicerCaches
¿Activado?
Establecer?sliCache ?=? sliCaches(SlicerCacheNameOrIndex)
Set?spTables?=?sliCache.PivotTables
While?spTables.Count
spTables.RemovePivotTable?
Wend
End?If
Set?spTables?=?Nothing
Set?sliCache?Slicer_Year "El número de índice es 1, entonces está bien Llamar como this
DisconnectAllPivotTablesFromSlicerCache?ActiveWorkbook, 1
Ejecute de la siguiente manera: