Excel VBA:根据另一列中的单元格范围删除列中的行

时间:2018-05-16 05:48:17

标签: excel vba excel-vba

Excel Sheet Image

我有上面的Excel工作表,并且一直在尝试使用VBA根据B列中的值删除行,前提是它们与当前位于C列的值匹配。我是编码新手并且到目前为止只获得了通过选择C列中的单个单元格来管理删除行(在B列中有一行包含值 331013 ,我设法通过选择C列中的单元格来删除它该值(当前是第一行)并删除了它。

我想要做的是在C列中选择整个值范围,这样我就可以在一个批次中删除B列中的所有匹配值。

以下是我到目前为止基于大量谷歌搜索管理的内容,它仅使用一个选项,但是当我手动选择多于一行时,它只删除第一个选择的相应值,如果我选择整个列范围,则会出现不匹配错误。而且我之前也遇到了堆栈溢出错误

Sub DeleteRows()

Dim rng As Range
Dim InputRng As Range
Dim DeleteRng As Range
Dim DeleteStr As Range

xTitleId = "Input"

Set InputRng = Application.Selection
Set DeleteStr = Application.Selection

Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set DeleteStr = Application.InputBox("delete range :", xTitleId, DeleteStr.Address, Type:=8)
For Each rng In InputRng
    If rng.Value = DeleteStr Then
        If DeleteRng Is Nothing Then
            Set DeleteRng = rng
        Else
            Set DeleteRng = Application.Union(DeleteRng, rng)
        End If
    End If
Next
DeleteRng.EntireRow.Delete
End Sub

我非常感谢可以提供的任何输入。

0 个答案:

没有答案