Excel中Range.Consolidate出现运行时错误'1004'的解决求助
解决Excel VBA Consolidate方法运行时错误1004的问题
出现运行时错误1004的核心原因是:Consolidate方法的Sources参数要求数据源地址必须包含工作表名称。你当前代码里仅传入了testRange.Address(比如返回$A:$P),Excel无法识别这个区域属于哪个工作表,因此触发错误。
修复方案
把Sources:=Array(testRange.Address)修改为包含工作表名称的地址格式,直接拼接工作表名和区域地址即可:
finalDataRange.Consolidate Sources:=Array(testSheet.Name & "!" & testRange.Address), Function:=xlSum, LeftColumn:=True
修改后的完整代码
Sub ConsolidateData() Dim finalDataSheet As Worksheet Dim testSheet As Worksheet Dim finalDataRange As Range Dim testRange As Range ' Set references to the worksheets Set finalDataSheet = ThisWorkbook.Worksheets("finaldata") Set testSheet = ThisWorkbook.Worksheets("Test") ' Set the range to consolidate in the finaldata sheet Set finalDataRange = finalDataSheet.Range("A1") ' Set the range to consolidate from the Test sheet Set testRange = testSheet.Range("A:P") ' Consolidate the data - 修复Sources参数,添加工作表名称 finalDataRange.Consolidate Sources:=Array(testSheet.Name & "!" & testRange.Address), Function:=xlSum, LeftColumn:=True End Sub
额外检查点
- 确认
finaldata和Test工作表名称拼写完全正确(Excel工作表名称区分大小写,注意不要有空格或特殊字符) - 确保
testRange(A:P列)包含有效数据,空区域可能导致合并失败 - 检查
finalDataRange指定的A1位置是否有足够空间存放合并结果,避免覆盖已有数据
内容的提问来源于stack exchange,提问作者Mark L.
相关产品推荐
相关产品推荐

