如何在不选择的情况下更改删除范围

时间:2016-01-25 16:45:34

标签: excel vba excel-vba

我尝试了所有想到的东西,在没有选择部分的情况下重写这段代码。

Worksheets(3).Activate
ActiveSheet.ListObjects(ListName).Range.Select 'Listname is a string-variable
Range(ActiveCell.Offset(1), ActiveCell.Offset(-1)).Select
Selection.Delete Shift:=xlUp
Worksheets(2).Activate
MsgBox "Set-creation was canceled.", vbCritical

1 个答案:

答案 0 :(得分:2)

Worksheets(3).Activate
ActiveSheet.ListObjects(ListName).Range.Select 'Listname is a string-variable
Range(ActiveCell.Offset(1), ActiveCell.Offset(-1)).Select
Selection.Delete Shift:=xlUp
Worksheets(2).Activate
MsgBox "Set-creation was canceled.", vbCritical

可以重写为:

With Sheets(3)
    .Range(.ListObjects(ListName).Range.Offset(1), .ListObjects(ListName).Range.Offset(-1)).Delete xlUp
End With    
Sheets(2).Activate    
MsgBox "Set-creation was canceled.", vbCritical

您不需要.Select Range Range("A1").Select Selection.Value = "Test" 中的任何内容,尤其是在处理Range("A1").Value = "Test" 对象时 - 可以直接访问所有属性和方法。< / p>

而不是:

Selection

考虑:

{{1}}

这是更好的编码,在长程序中运行速度会更快。另一个好处是,在调试或改进代码时,您不必跟踪{{1}}的内容。