Vba 无法将透视字段设置为隐藏

Vba 无法将透视字段设置为隐藏,vba,excel,Vba,Excel,希望这将是一个简单的问题,但我找不到这个特定场景的答案。我使用以下代码根据用户选择隐藏和取消隐藏透视字段。变量fieldShow是一个布尔值,如果用户希望查看该特定字段,则该布尔值为true;而fieldLastVal是一个布尔值,指示该字段当前是否显示 If fieldShow <> fieldLastVal Then If fieldShow Then With pt.PivotFields(fieldName) .Orientat

希望这将是一个简单的问题,但我找不到这个特定场景的答案。我使用以下代码根据用户选择隐藏和取消隐藏透视字段。变量
fieldShow
是一个布尔值,如果用户希望查看该特定字段,则该布尔值为true;而
fieldLastVal
是一个布尔值,指示该字段当前是否显示

If fieldShow <> fieldLastVal Then
    If fieldShow Then
        With pt.PivotFields(fieldName)
            .Orientation = xlDataField
            .Function = xlSum
        End With
    Else
        pt.PivotFields(fieldName).Orientation = xlHidden
    End If
End If
fieldLastVal = fieldShow
如果fieldShow fieldLastVal,则
如果现场表演的话
带有数据透视字段(字段名)
.Orientation=xlDataField
.Function=xlSum
以
其他的
pt.PivotFields(fieldName).Orientation=xlHidden
如果结束
如果结束
fieldLastVal=fieldShow
问题在于隐藏透视字段。问题是,代码执行得很好。没有错误,什么都没有。但是,它实际上从未隐藏轴字段。它仍然在那里,好像什么事也没有发生。我仔细阅读了代码,这行代码肯定会执行,它对pivot表没有任何影响,我不明白为什么

将轴字段的方向设置为
xlDataField
的行具有所需的效果。我真的不确定这里发生了什么


有什么想法吗?

将透视字段的
方向更改为
xlDataField
会更改其名称,例如,从“我的数据”更改为“我的数据计数”。因此,如果您试图将“我的数据计数”设置为“隐藏”,您可能实际上是在对“我的数据”执行操作。

假设
fieldName
有效,这行代码似乎应该可以工作。如果它无效,你会得到一个错误,除非你已经得到并且在错误上继续下一步。你不喜欢吗?不喜欢。错误时无
语句。而
fieldName
是绝对有效的,因为相同的
fieldName
变量在
…Orientation=xlDataField
语句中工作正常。因此我感到困惑。我还有一个想法。将透视字段的
方向更改为
xlDataField
会更改其名称,例如,从“我的数据”更改为“我的数据计数”。因此,如果您试图将一个数据字段设置为“隐藏”,那么您实际上可能正在对另一个字段执行操作。这正是问题所在。我知道这将是一个愚蠢的小事情,像我忽略了。如果你想把你的解释写在下面作为问题的答案,我会接受你的回答。谢谢很高兴听到这个消息!完成。