VBA执行数据透视表代码时,如何自动选择弹窗YES选项?
解决VBA数据透视表替换数据弹窗问题
有两种方案可以处理这个弹窗:
方案一:临时关闭Excel警报(推荐)
通过关闭Excel的显示警报功能,让代码自动执行默认的替换操作,执行完成后再恢复警报功能,避免影响后续操作。修改后的代码如下:
' 关闭显示警报,自动接受默认操作(即选择YES) Application.DisplayAlerts = False ActiveSheet.PivotTables("Tabela").ChangePivotCache ActiveWorkbook.PivotCaches. _ Create(SourceType:=xlDatabase, SourceData:= _ "'" + cell.Value + "'!R10C2:R80C11" _ , Version:=6) ' 恢复显示警报,不影响后续Excel操作 Application.DisplayAlerts = True
方案二:清空原有字段后更新缓存
如果不想全局关闭警报,可先清空数据透视表的现有字段,再更新缓存,避免触发替换提示。示例代码:
' 先隐藏/删除数据透视表所有现有字段 With ActiveSheet.PivotTables("Tabela") Do While .PivotFields.Count > 0 .PivotFields(1).Orientation = xlHidden Loop End With ' 更新数据透视表缓存 ActiveSheet.PivotTables("Tabela").ChangePivotCache ActiveWorkbook.PivotCaches. _ Create(SourceType:=xlDatabase, SourceData:= _ "'" + cell.Value + "'!R10C2:R80C11" _ , Version:=6)
内容的提问来源于stack exchange,提问作者Theylen
相关产品推荐
相关产品推荐

