根据工作表中的选定单元格创建Excel宏以删除行

时间:2016-12-08 17:35:32

标签: excel excel-vba vba

我已经创建了一个宏,但由于行在删除过程中实际发生了变化,因此它并没有真正起作用。用户选择表格中的任何#个单元格。在运行宏时,只删除属于所选单元格的那些行。这是我到目前为止所得到的:

Sub DeleteSelectedRows()
Dim Cell As Range
With Sheet1
For Each Cell In Selection
        .Range(Cell.Address).EntireRow.Delete
Next Cell
End With
End Sub

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

在某些(可能很少见)的情况下,用户可以按住Ctrl键并单击以选择不连续的范围。此代码将考虑这种可能性,同时仍然只删除实际选择的行:

MyDataModel

答案 1 :(得分:1)

修改集合时不要使用public List<String> b(final List<Student> students) { List<String> result = new ArrayList<>(); for(Student student : students){ result.add(student.nameFirst); } return result; } 循环,使用更简单的For Each循环,从最后一行索引(或列索引)开始,然后返回第一个索引。

确保循环设置为For以向后移动。向后方向是必需的,因为在Excel中,当您删除行/列时,剩余的行/列向上/向左移动,因此在第一次编辑后所有其他索引可能都是错误的。

Step -1