VBA – 删除另一个工作表中的行

Function DeleteRows() Dim wb As Workbook Set wb = Workbooks(ThisWorkbook.Name) Debug.Print wb.Name Dim wsName As String Dim ws As Worksheet wsName = "SheetX" Set ws = wb.Worksheets(wsName) Debug.Print ws.Name With ws Debug.Print "ws.name = " & ws.Name Rows("3:31").Select Selection.Delete Shift:=xlUp End With End Function 

我有这个函数,DeleteRows,从工作表“SheetX”删除行3:31。

这仅适用于“SheetX”是屏幕上显示的工作表。

我希望它工作时,另一张表,让工作簿中说“SheetY”显示。 我怎样才能做到这一点?

一种方法是:1激活“SheetY”2删除行3激活“SheetX”

但是这对用户来说不是透明的。 感谢帮助。

您应该总是尽量避免select语句。 他们几乎总是不必要的。 该函数应该是一个Sub(因为它没有输出),可以重写为一行:

 Sub DeleteRows() ThisWorkbook.Sheets("SheetX").Range("3:31").Delete xlUp End Sub