小编Rob*_*n A的帖子

出现“无法设置 PivotField 类的 CurrentPage 属性”错误

我正在尝试使用 VBA 根据用户从单元格条目中的选择自动更新数据透视表过滤器。我相信一切正常,直到第 11 行显示“Field.CurrentPage = NewCat”。这就是问题所在。该代码按照上一行中的说明清除了我的过滤器,但是当它到达指示它选择新数据的代码时,我收到错误消息“运行时错误 1004。无法设置 PivotField 类的 CurrentPage 属性”。

下面是我到目前为止所拥有的,我只是在寻找如何修改第 11 行,以便它选择要在数据透视表过滤器中使用的新输入。我很感激我能得到的任何帮助。我对 vba 很陌生,并且为此苦苦挣扎了太久!

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target, Range("C3:C4")) Is Nothing Then Exit Sub

Dim pt As PivotTable
Dim Field As PivotField
Dim NewCat As String

Set pt = Worksheets("Pivot").PivotTables("PivotTable1")
Set Field = pt.PivotFields("[Range].[Site].[Site]")
NewCat = Worksheets("Interface").Range("C3").Value

With pt
Field.ClearAllFilters
Field.CurrentPage = NewCat
pt.RefreshTable
End With

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba

7
推荐指数
2
解决办法
2万
查看次数

Application_Startup() 未触发

我在“ThisOutlookSession”模块中编写了代码。

Application_ItemSend 有效,发送邮件时触发事件。

当我打开 Outlook 后手动启动 Application_Startup 时,Application_Startup 就会运行,而不是在启动时运行。

将子变量设置为私有没有什么区别 - 将变量设置为公共也没有什么区别。

我在信任中心的“启用所有宏”上有宏设置。

我在运行 Windows 10 企业版的电脑上使用 Outlook 2016。

我对这个问题进行了深入研究。

Option Explicit

Dim add_str As String

Public Sub Application_Startup()

    Dim olNs As Outlook.NameSpace
    Dim Folder As Outlook.MAPIFolder
    Dim SubFolder As Outlook.MAPIFolder
    Dim Item As Object

    Set olNs = Application.GetNamespace("MAPI")
    Set Folder = olNs.Folders("albrobin@workmail.com").Folders("WORKFLOW").Folders("Reporting")

    For Each SubFolder In Folder.Folders
        If SubFolder.items.Restrict("[UnRead] = True").Count > 0 Then
            For Each Item In SubFolder.items
                Item.UnRead = False
            Next
        End If
    Next

End Sub


Public …
Run Code Online (Sandbox Code Playgroud)

outlook vba

1
推荐指数
1
解决办法
5215
查看次数

标签 统计

vba ×2

excel ×1

outlook ×1