【发布时间】:2017-05-25 03:08:55
【问题描述】:
它的用途: 我有一个零件清单,每个作业都会更改。
我想要完成的工作: 如果选定的单元格不在 A 列中,则 msgbox 提示用户“选择部件号” 如果所选单元格在 A9:lastrow 范围内,则仅运行删除宏
为什么只有 A 列: 如果我可以强制他们选择 A 列中的单元格,那么我可以使用 ActiveCell.Offset 向 msgbox 添加信息,询问他们是否确定这是他们想要删除的内容,并包含有关他们选择的部分的其他单元格信息。
第 8 行上方是标题,因此必须锁定。
我的每个部件号都有 3 行,这就是我运行“EntireRow.Delete”3 次的原因。
这就是我现在所拥有的。
Sub DeleteRow()
If MsgBox("Are you sure you want to delete this part?" & vbNewLine & " " & vbNewLine & ActiveCell.Value & vbNewLine & ActiveCell.Offset(0, 1).Value & vbNewLine & "QTY: " & ActiveCell.Offset(0, 12).Value, vbYesNo) = vbNo Then Exit Sub
If ActiveCell.Row > 8 Then
Rows(ActiveCell.Row).EntireRow.Delete
Rows(ActiveCell.Row).EntireRow.Delete
Rows(ActiveCell.Row).EntireRow.Delete
End If
End Sub
【问题讨论】:
-
在确定
ActiveCell行是> 8(列是=1) 之后问这个问题不是对用户更友好吗?否则他们会说“是”,然后你无论如何都会忽略它们。