Buen día
Tengo una macro de Excel donde combino mis datos al final en una tabla dinámica. Sin embargo, también tengo un sub que agrega un campo de valor a la tabla. Se parece a esto:
Sub AddValuesField()
Dim pvt As PivotTable
Dim pf As String
Dim pf_Name As String
Dim sDatasheet As String
Dim sPivotName As String
sPivotName = "Pivot1"
sDatasheet = "Documents with extracted fields"
Sheets(sPivotName).Select
Set pvt = Sheets(sPivotName).PivotTables("PivotTable1")
pf = Sheets(sDatasheet).Range("A1").Value
pvt.AddDataField pvt.PivotFields(pf), pf, xlSum
End sub
El nombre de la columna se almacena en pf(campo dinámico). Sin embargo, recibo el error más descriptivo que sueño recibir: "Error definido por objeto 1004"
Espero que alguien aquí pueda ayudarme :)
gr,
menno
------------------------------------
El título del nuevo campo de datos debe ser diferente de los campos existentes en la tabla dinámica.
Básicamente, el nombre del campo dinámico y su título no pueden ser ambos pfvariables
Agregar "Suma de " solucionaría el problema, pero también lo haría agregar cualquier otra cadena para diferenciar el nuevo campo.
------------------------------------
Al agregar un campo como Suma a su tabla dinámica, debe agregar las palabras "Suma de" antes del nombre de PivotField.
Cambiar tu línea:
pvt.AddDataField pvt.PivotFields(pf), pf, xlSum
a:
pvt.AddDataField pvt.PivotFields(pf), "Sum of " & pf, xlSum
Nota: no necesita seleccionar su hoja de trabajo, simplemente puede usar Set pvt = Sheets(sPivotName).PivotTables("PivotTable1") sin seleccionarla primero.
2
¡Gracias, esto funcionó para mí! Sin embargo, selecciono la hoja porque quiero que el usuario la vea cuando finalice el programa, por eso :)
- Menno
28 de marzo de 2021 a las 8:06
@Menno lo entendió :)
- Shai Rado
28/03/2021 a las 10:18