使用VBA删除“调整”下面的所有行

时间:2019-05-05 14:08:31

标签: excel vba

我有关于福利的数据。这些工作表的底部是调整。这些不应在我的宏和公式中使用。

我希望VBA无需手动删除,而是找到“调整”并删除该行以及该行以下的所有行。我需要3个工作表才能重复。

我已经在Google上搜索并尝试了各种代码,但似乎无法正确阅读。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

第一步是找到“调整”的第一行。您将使用.Find方法获取该信息。下面是示例代码行。您可以在Google上搜索更多详细信息和示例。

有了它,您将找到最后一行,然后从调整行的开始到最后一行删除行。我在下面包括了应该有用的功能。

Set foundCell = rng.Cells.Find(varSearchValue, celStartCell, enuXlFindLookIn, enuXlLookAt)

Public Function LastUsedRow(wks As Worksheet) As Long
    Dim rng As Range: Set rng = wks.UsedRange   ' Excel will recalc used range
    LastUsedRow = rng.Row + rng.Rows.Count - 1
End Function

Public Sub DeleteRows(wks As Worksheet, lngRowStart As Long, Optional ByVal lngRowEnd As Long = 0)
    If lngRowEnd = 0 Then lngRowEnd = lngRowStart
    wks.Rows(lngRowStart & ":" & lngRowEnd).Delete
End Sub

答案 1 :(得分:0)

我推断 Adjustments 是某种级别的标题行标签。我假设它总是在A列中。

sub ScrubAdjustments()

  dim w as long, wss as variant, m as variant

  wss = array("sheet1", "sheet2", "sheet3")

  for w = lbound(wss) to ubound(wss)
    with worksheets(wss(w))

      m = application.match("adjustments", .range("a:a"), 0)
      if not iserror(m) then
        .range(.cells(m, "A"), .cells(.rows.count, "A")).entirerow.delete
      end with

    end with
  next w

end sub