首页 > 解决方案 > 是否可以限制行选择?

问题描述

我正在尝试制作一个按钮以使用 vba 从 Excel 上的表格中删除一行,但是当我按下按钮并选择不止一行或许多单元格然后删除所有内容时,我想限制从 E 中的选择给我(不管行数)这是我的代码,非常感谢,希望你能帮助我,我还没有找到类似的东西。

子 delete_a_row()
变暗变量为范围


 出错时转到 local_err
     CONFIRM = MsgBox("你想删除一行吗?", vbYesNo + vbExclamation, "删除行")
        如果 (CONFIRM = vbYes) 那么

                设置变量 = Application.InputBox("选择一行", "删除行", , , , , , 8)
                范围(变量。地址)。选择
                选择.删除 Shift:=xlUp

        万一
本地错误:
结束子

我知道看起来有点乱,抱歉我是 VBA 新手

标签: excelvba

解决方案


有限的行选择

  • 以下将删除from 列to的第row一个first range (如果不连续)。selectionEI
  • 我的意思first range是,如果您选择一个以 row 开头的范围6并按下 CTRL并选择另一个以 row 开头的范围2,那么 row6将被删除(请参阅Range.Areas)。

编码

Option Explicit

Sub delete_a_row()
    Dim Confirm
    On Error GoTo local_err
    Confirm = MsgBox("do you wanna delete a row?", _
                     vbYesNo + vbExclamation, "delete row")
    If (Confirm = vbYes) Then
        Dim variable As Range
        On Error Resume Next
        Set variable = Application.InputBox("select a row", _
                                            "delete row", , , , , , 8)
        If Err.Number = 0 Then
            On Error GoTo local_err
            With variable
                Range(Cells(.Row, "E"), Cells(.Row, "I")).Delete Shift:=xlUp
            End With
        Else
            On Error GoTo local_err
            MsgBox "User cancelled."
        End If
    Else
        MsgBox "User selected No."
    End If
local_err:
End Sub

推荐阅读