[SheetName] [PivotTableName]"中已存在数据。你想替换它吗?

时间:2017-01-13 16:06:49

标签: excel-vba vba excel

我正在使用带有数据透视表,数据透视表和仪表板的Excel 2016模板,我根据各种选择和过滤器动态更新数据。每当我打开报告的新版本(Excel文件)时,我都会为每个图表收到以下消息:

  

[SheetName] [PivotTableName]"中已有数据。你想替换它吗?

我浏览过互联网,我找到了两种不起作用的解决方案。

  1. 我尝试创建一个禁用消息的宏然后 刷新所有数据。我使用以下VBA代码来禁用消息,但它没有按预期工作:

    Applictaion.DisplayAlerts = false
    
  2. 我进入了Excel尝试禁用的高级选项 在覆盖单元格之前设置"警报"。这没解决 我的问题,我也请求同事试试他的机器 他也得到了同样的信息。

  3. 是否有人知道如何禁用此消息?

2 个答案:

答案 0 :(得分:2)

除了您的第一个解决方案:

  1. 在弹出警告的代码前使用:
  2. Application.DisplayAlerts = False

    1. 代码完成后,再次启用alrert模式:
    2. Application.DisplayAlerts = True

答案 1 :(得分:0)

'在代码之前可以禁用其他事件,在代码之后启用它们以提高vba的性能。

'1。在弹出警告的代码之前,禁用所有:

Sub DisableAll()

    Application.EnableEvents = False
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False

    For Each Worksheet In ActiveWorkbook.Worksheets
        Worksheet.Unprotect Password:="your password"
    Next
    Exit Sub

End Sub

'2。代码完成后,再次启用所有事件,警报和受保护的工作表:

Sub EnableAll()

    For Each Worksheet In ActiveWorkbook.Worksheets
        Worksheet.Protect Password:="your password", DrawingObjects:=True, contents:=True, Scenarios:=True _
        , UserInterfaceOnly:=True, AllowFiltering:=True
    Next
    Exit Sub

    Application.EnableEvents = True
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True

End Sub