我正在尝试将GetPivotData公式插入某些单元格中。
最多有7个数据透视表来获取数据,因此我需要动态地进行处理:
Function Formula(KPI As String, FilaTD As Integer, ColumnaTD As Integer, Filtro1 As String, _
Simple As Boolean, Optional Filtro2 As String)
If Simple = True Then
Formula = "IFERROR(GETPIVOTDATA(" & Comillas & KPI & Comillas & ",'TDReport Control Desk'!R" & _
FilaTD & "C" & ColumnaTD & "," & Filtro1 & ",RC2),0)"
Else
Formula = "IFERROR(GETPIVOTDATA(" & Comillas & KPI & Comillas & ",'TDReport Control Desk'!R" & _
FilaTD & "C" & ColumnaTD & "," & Filtro1 & ",RC2),GETPIVOTDATA(" & Comillas & KPI & Comillas & _
",'TDReport Control Desk'!R" & FilaTD & "C" & ColumnaTD & "," & Filtro2 & ",RC2))"
End If
End Function
名为“ Comillas”的字符串只是一个常量:
Public Const Comillas As String = """"""
我这样称呼这个函数:
FormulaPrevisionAtenMesCentro = Formula(KPI2, FilaTDOffCentro, ColumnaTDOffCentro, "Centro", True)
FormulaPrevisionAtenDiaCentro = Formula(KPI2, _
FilaTDOffDiaCentro, ColumnaTDOffDiaCentro, "Centro", True)
FormulaPrevisionAtenMes = Formula(KPI2, _
FilaTDOffMes, ColumnaTDOffMes, "Modo2", False, "Modo3")
FormulaPrevisionAtenDia = Formula(KPI2, _
FilaTDOffDia, ColumnaTDOffDia, "Modo2", False, "Modo3")
FormulaKPIMes = Formula(KPI, _
FilaTDOffMes, ColumnaTDOffMes, "Modo2", False, "Modo3")
FormulaKPIMesCentro = Formula(KPI, FilaTDOffCentro, ColumnaTDOffCentro, "Centro", True)
FormulaKPIDia = Formula(KPI, _
FilaTDOffDia, ColumnaTDOffDia, "Modo2", False, "Modo3")
FormulaKPIDiaCentro = Formula(KPI, FilaTDOffDiaCentro, ColumnaTDOffDiaCentro, "Centro", True)
我的问题出在 Comillas 内。如果使用它,它将引发VBA错误。如果我不使用它,那么该公式将被插入但不会起作用,因为我要的字段将不在“”之间。
答案 0 :(得分:2)
应该是:
model
因为您只希望公式在值的两边都包含一个单引号。您只需要将带引号的字符串放在公式字符串中,而不是将其串联时,将它们加倍。