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
关于VBA - 删除另一个工作表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20206671/