这段VBA代码存在什么问题?Set SourceRng = SourceWS.Range(Cells(1, 6), Cells(650, 11))
VBA代码错误排查结果
具体错误点
- 代码中的
Cells(1, 6)、Cells(650, 11)未显式指定所属工作表,VBA默认将无父对象的Cells指向当前活动工作表。如果执行代码时的活动工作表和SourceWS不是同一张表,Range方法的两个边界单元格归属工作表不一致,会直接触发运行时错误1004。
修正方案
写法1:直接给所有单元格对象绑定父工作表
Set SourceRng = SourceWS.Range(SourceWS.Cells(1, 6), SourceWS.Cells(650, 11))
写法2:用With语句简化重复引用(更推荐,代码可读性更高)
With SourceWS Set SourceRng = .Range(.Cells(1, 6), .Cells(650, 11)) End With
内容的提问来源于stack exchange,提问作者Nikhil Mangrulkar
相关产品推荐
相关产品推荐

