VBA创建数据透视表触发Run Time Error 5无效过程调用错误的原因
运行时错误5的可能原因
该错误为参数无效错误,仅在少数设备触发是由环境或参数赋值的差异化问题导致,具体原因如下:
- Excel版本不兼容:代码中指定的
Version:=6和DefaultVersion:=6对应Excel 2010及以上版本的透视表格式,报错用户使用的是Excel 2007及更早版本,无法识别该版本参数,或者用户使用的64位Office未正确适配对象库,导致参数解析失败。 - 工作表名特殊字符未处理:若
newname对应的工作表名包含空格、感叹号、方括号等特殊字符,代码拼接数据源和目标地址时没有用单引号包裹工作表名,系统无法正确识别地址,会抛出参数无效错误。 - 参数赋值异常:
newname对应的工作表不存在、或者PivotTableName的取值和目标位置已有的透视表重名,都会导致创建逻辑触发参数错误。 - 源数据格式异常:少数用户的源数据存在空列、表头缺失、整行空值的情况,无法生成合法的透视表缓存,也会触发该报错。
参考修复代码
可以删除版本参数让Excel自动适配当前版本,同时给工作表名增加单引号包裹处理,修改后的代码如下:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _ "'" & newname & "'").CreatePivotTable TableDestination:= _ "'" & newname & "'!R7C1", TableName:=PivotTableName
如果需要兼容Excel 2007版本,可以把版本参数改为Version:=xlPivotTableVersion12即可。
内容的提问来源于stack exchange,提问作者Pri Mar
相关产品推荐
相关产品推荐

