我在Excel中有以下命名范围。
我还有以下代码可以使用该命名范围:
With wsVehicleSummary
With .Range(.Cells(.Range("VehicleList").Row, 1), .Cells(.Range("VehicleList").Row, .Range("K1").Column)).Offset(1)
.PasteSpecial xlPasteValues
.Resize(.Range("VehicleList").End(xlDown).Row - .Range("VehicleList").Row, 11).RemoveDuplicates 1, xlYes
.Resize(.Range("VehicleList").End(xlDown).Row - .Range("VehicleList").Row, 11).Sort "Veh #", xlAscending, Header:=xlYes
End With
问题出现在删除重复项调用中,我将其缩小到.Range("VehicleList").Row
等于40的事实,当它应该是20时(如屏幕截图所示)。
我在运行时调试了这个并且感到困惑,为什么?.Range("VehicleList").Row
返回40而不是20。
虽然,在我写这篇文章时,我想知道它是否与我在With块中调用范围以及如何使用Resize有关。
有任何建议或想法吗?
答案 0 :(得分:0)
感谢@Rory的评论,我做了以下更改,现在我的代码按预期工作。
With wsVehicleSummary
Dim lRowResize As Long
lRowResize = .Range("VehicleList").End(xlDown).Row - .Range("VehicleList").Row
With .Range(.Cells(.Range("VehicleList").Row, 1), .Cells(.Range("VehicleList").Row, .Range("K1").Column))
.Offset(1).PasteSpecial xlPasteValues
.Resize(lRowResize, 11).RemoveDuplicates 1, xlYes
.Resize(lRowResize, 11).Sort "Veh #", xlAscending, Header:=xlYes
End With