Удалить все строки ниже «Корректировки» с помощью VBA - PullRequest
0 голосов
/ 05 мая 2019

У меня есть данные относительно льгот.Внизу этих рабочих листов находятся корректировки.Они не должны использоваться в моих макросах и формулах.

Вместо того, чтобы вручную удалять, я бы хотел, чтобы VBA нашел «Корректировки» и удалил эту строку и все строки ниже этой.У меня есть 3 листа, которые мне нужно повторить.

Я гуглил и пробовал разные коды, но не могу заставить его правильно читать.Кто-нибудь может помочь?

Ответы [ 2 ]

0 голосов
/ 05 мая 2019

Я сделал вывод, что Adjustments является своего рода меткой строки заголовка подуровня. Я предполагаю, что это всегда в столбце А.

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
0 голосов
/ 05 мая 2019

Первый шаг - найти первый ряд ваших настроек. Вы будете использовать метод .ind, чтобы получить это. Ниже приведен пример строки кода. Вы можете 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...