Excel VBA排序报错:引用无效,请求协助排查问题
解决VBA排序“引用无效”错误
你的代码核心问题出在排序语句的Key1参数上:虽然排序对象明确指定了Worksheets("LP").Range("C1:C31"),但Key1:=Range("C1:C31")没有绑定目标工作表,默认会引用当前活动工作表的范围。当活动表不是"LP"时,就会触发“引用无效”的错误。
修正后的代码
Worksheets("LP").Range("D:D").Copy Worksheets("LP").Range("C:C").PasteSpecial Paste:=xlPasteValues With Worksheets("LP") .Range("C1:C31").Sort Key1:=.Range("C1:C31"), Order1:=xlAscending, Header:=xlNo End With
通过With Worksheets("LP")代码块,将所有操作限定在目标工作表内,Key1前的.确保范围指向"LP"表,彻底避免活动表干扰。
额外排查点
- 确认工作表名称完全匹配:检查"LP"是否和实际工作表名一致,注意大小写、空格或特殊字符
- 检查工作表保护状态:若"LP"表被保护,排序操作会被拦截,需先取消保护(操作完成后可重新开启)
- 验证数据范围有效性:确认
C1:C31无合并单元格、空引用等异常情况
内容的提问来源于stack exchange,提问作者Mar
相关产品推荐
相关产品推荐

