Red de conocimiento informático - Aprendizaje de programación - Utilice el script Excel VBA para desconectar una segmentación de datos de todas las tablas dinámicas

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: