[英]Excel-VBA .Range(“NamedRange”).Row Returning a Different Row Then Where Range is Located
我在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
這個問題出現在Remove Duplicates調用中,我將其范圍縮小到.Range("VehicleList").Row
等於40,應為20(如屏幕截圖所示)。
我已經在運行時調試了此命令,並為為什么?.Range("VehicleList").Row
返回40(而不是20 ?.Range("VehicleList").Row
感到困惑。
盡管在撰寫本文時,我想知道它是否與我在With塊中調用range以及如何使用Resize有關。
有什么建議或想法嗎?
感謝@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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.