VBA数据透视表报错:文件发送至教授电脑后宏无法运行
解决VBA数据透视表代码在不同电脑上运行失败的问题
你的代码出现错误,主要是硬编码范围、版本兼容这两个核心问题导致的,以下是针对性修复方案:
替换硬编码的数据范围为动态引用
你当前用固定范围'Raw Data'!R1C1:R68615C17,如果教授电脑里的"Raw Data"工作表数据行数/列数和你的不一致,就会触发错误。改成动态获取连续数据区域:Dim wsRaw As Worksheet Set wsRaw = ActiveWorkbook.Worksheets("Raw Data") Dim dataRange As Range Set dataRange = wsRaw.Range("A1").CurrentRegion ' 自动识别所有连续数据再将数据透视表缓存的数据源替换为这个动态范围:
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=dataRange, Version:=xlPivotTableVersionCurrent).CreatePivotTable _ TableDestination:="", TableName:="PivotTable1234567890", DefaultVersion:=xlPivotTableVersionCurrent使用版本兼容常量替代固定版本号
代码里的Version:=8是Excel 2007的专属版本号,教授的电脑可能是更高版本(如2019/365),用xlPivotTableVersionCurrent会自动适配当前Excel版本,彻底避免版本兼容问题。明确指定数据透视表的目标位置(可选但更稳妥)
虽然TableDestination:=""允许Excel自动选择位置,但部分版本对空值处理存在异常,可明确指定一个空白单元格,比如:' 新建工作表并将透视表放在A3位置 TableDestination:=ActiveWorkbook.Worksheets.Add.Range("A3")或者指定现有工作表的单元格:
TableDestination:=ActiveWorkbook.Worksheets("PivotSheet").Range("A1")确认工作表名称一致性
检查教授电脑里的原始数据工作表名称确实是Raw Data,没有拼写错误、空格差异(比如误写成RawData)。
内容的提问来源于stack exchange,提问作者Mumblepants
相关产品推荐
相关产品推荐

