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

标签 vba excel rows

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/

相关文章:

vba - 如何清除 VBA for Excel 中 UsedRange 之外的所有格式?

r - 将非 NA 值堆叠到每列的顶部

python行而不是列

html - 下面有图文的水平表格菜单

sharepoint - 共享点版本控制是否存储在 Excel 文档的文档中?

vba - 错误 1004 - 打开工作簿

excel - 编写 csv 以在 Excel 中作为不同的选项卡打开

vba - 在 VBA 过滤表中选择第一 10 行可见单元格

xml - getElementsByTagName 在 VBA 中使用 DOMDOCUMENT60 返回零个元素

vba - 复制嵌入图像而不使用形状